この記事では、Kaggleコンペにおいてデータ型ごとの定石みたいなものを書いていきます。また、コンペ関係なく精度が出ない時のヒントなどになれば良いなと思います。
今回は以下のコンペ・データセットに触れていきます。コンペの場合はKernelがないので、Notebooksをまとめて行こうと思います。
Predict Future Sales
Avocado Prices
1.Predict Future Sales
タイプ:回帰
概要:店の名前、商品の名前などから翌月1ヶ月での商品の売り上げ個数を予測
1.1Time series Basics : Exploring traditional TS
| 実行した分析 | 結果 |
|---|---|
| 特徴量のヒストグラムの可視化 | カテゴリに偏りがある事を発見 |
| 時系列順に特徴量のプロット | 季節ごと、またトレンドの入れ替わりがある事がわかる |
| ADF,KPSS,PPでステーショナリティ(周期性)をチェック | 周期性の有無を知る |
| AR, MA, ARMAモデルなどを試す |
他にもHierarchical time series(ヒエラルキー時系列)におけるアプローチの仕方、ボトムアップ、トップダウン、ミドルアウトを紹介しています。
とりあえず時系列データは時期によるアップダウンをどんな風に数式に落としていくかが大事なんですねー
関連
Forecasting Hierarchical Time Series using R
Rで計量時系列分析:AR, MA, ARMA, ARIMAモデル, 予測
1.2 Feature engineering, xgboost
| 実行した分析 | 結果 |
|---|---|
| 特徴量を可視化 | ノイズデータを見つけたので他の数値で補間 |
| 特徴量エンジニアリング(月平均を日ごとの売り上げから出す、ある期間における売り上げの平均を特徴量として追加など) | 精度の向上 |
| xgboostで予測 |
時系列としての情報を地道に特徴量エンジニアリングで特徴量に落とし込んで、xgboostで予測するという形でした。この地道な特徴量エンジニアリングすごい〜
関連
過去に特徴量エンジニアリングについて記事を書いたのでこちらも是非
特徴量エンジニアリング備忘録
1.3 A beginner guide for sale data prediction
| 実行した分析 | 結果 |
|---|---|
| 特徴量の可視化 | 季節ごとのパターンを発見・特徴量に落とす事を決めた |
| LSTMで予測 |
1.4 1st place solution - Part 1 - "Hands on Data"
| 実行した分析 | 結果 |
|---|---|
| 特徴量エンジニアリング(売り上げが数ヶ月ない店をグルーピングする、店の名前の重複を発見、名前からカテゴリを抽出et) | 精度の向上 |
まとめ
ここからわかるように、
データの可視化 -> データの傾向を見る -> 特徴量エンジニアリング -> モデルに突っ込む
というルーティーンが共通しています。
2.Avocado Prices
続いて、時系列データセットの方からもう一つ紹介したいと思います。ここからは使用した手法を中心にみていきます
タイプ:回帰・分類両方
概要:過去のアボカドの売り上げのデータ
2.1 Price of Avocados || Pattern Recognition Analysis
このカーネルは可視化が綺麗すぎる&細かいです。感動。
| 使用した手法 |
|---|
| Smoothing Moving Average |
| Seasonal Naive Method |
| Drift Method |
| ARIMA |
2.2 Explore avocados from all sides!
これもめっちゃ可視化が綺麗。
これはオーガニックのアボカドかそうじゃないかっていう分類問題にしています。
| 使用した手法 |
|---|
| logistic regression |
| RandomForest |
| KNeighborsClassifier |
2.3 Predicting prices of avocados
| 使用したツール |
|---|
| prophet |
2.4 EDA + Lasso
こちらも分類問題に落とし込んでいます。
| 使用した手法 |
|---|
| DecisionTree |
| RandomForest |
| KNeighbours |
| SVM |
| AdaBoostClassifier |
| GradientBoostingClassifier |
| Xgboost |
| Lasso |
| Ridge |
| Bayesian Ridge |
| ElasticNet |
| HuberRegressor |

