俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

【3位解法】Probspace開催「野菜取引価格の予測」の振り返り。

データ分析好きが集まる交流プラットフォーム「ProbSpace」で開催された「野菜取引価格の予測」に参加し、3位(金)の成績を残せました!

今回のコンペは、複数項目の時系列データ予測タスクだったのですが、久々に上位争いに食い込める結果を残すことができました。

途中少し間が空いてしまうこともありましたが、最初から最後までじっくりと腰を据えて取り組むことができた良いコンペでした。

では、振り返って参りたいと思います。

1.全体構成

今回のコンペは、NEDO(産業技術総合開発機構)、大学、ベンチャー企業などでもモデルの開発が進められている野菜の価格変動を予測するタスクです。

42品目の野菜について消費地域ごとの340個の価格を、過去約4年分の価格と気温や日照時間等の気象情報から予測します。

野菜についてどのような分類をして予測するか、天候情報をどのように加工して、何を選択するかで知恵を絞りました。

全体構成としては、大きく分けて以下の2つの構成で構築し、それぞれの予測値の平均を最終的な提出としました。

地域に関しても考慮に入れようか悩んだのですが、今回の価格は生産地ではなく消費地の価格とのことでしたので、地域別の予測はあまり影響しないと仮定して、野菜の種類だけに注目することとしました。

2.特徴量加工・選択

特徴量については、価格の時系列データのほかに天候情報(天候観測所348箇所ごとに、2015/1~2019/11の月次の天候データ)について以下の通り加工し、分類した野菜毎に、選択して学習に利用しました。

【特徴量の加工】

分類 処理内容

元データ

  • 天候情報の元データを日照時間、降水量、降雪量、最高気温、最低気温、平均気温の6つに分類

累積和

  • 日照時間、降水量の合計、降雪量合計、平均気温、最低気温25℃以上日数、最高気温25℃以上日数、最低気温0℃未満日数、最高気温0℃未満日数、日照時間0.1時間未満日数について、累積和を特徴量として追加。
  • 累積については、2か月、3か月、4か月、6か月、12か月のパターンで累積和を計算。

差分

  • 最高気温と最低気温の差、平均気温と最低気温の差、最高気温と平均気温の差、最高気温の平均と最低気温の平均の差を特徴量として追加。

閾値以上、以下のフラグ

  • 日照時間につき、100,150,200,250,300を閾値として以上、以下のフラグを特徴量として追加。
  • 降水量の合計につき、10,50,100,200,300,400,500を閾値として以上、以下のフラグを特徴量として追加。
  • 降雪量の後継につき、5,10,30,50,100,150,200を閾値として以上、以下のフラグを特徴量として追加。
  • 最高気温の平均、最低気温の平均、平均気温につき、5,10,15,20,25,30,35を閾値として以上、以下のフラグを特徴量として追加。

【特徴量の選択】

上記の各特徴量について、野菜の分類ごとに特徴量を選択して学習・予測を行いました。


3.モデル構築

 モデルは野菜分類ごとに学習・予測を行いました。

それぞれのモデルは基本的にはProbSpaceのトピックに投稿させていただいている以下のモデルを基本として、LSTMの部分にSimpleRNN、GRUを利用した3種類のモデルにつき、野菜分類ごとにハイパーパラメーターを調整して作成しています。

 LSTM Base line−コメント付き (LB 0.27614 ) by Oregin ; ProbSpace

野菜分類ごとの予測値を、2つの構成それぞれで集約した予測①と予測➁の平均を最終予測値としました。

このモデルで提出したファイルで、最終スコア:0.09673 となり、全体で3位で、金トロフィー圏内に入ることができました。

4.感想

今回のコンペは、野菜の価格を予測するという時系列データを扱った課題でした。

3位という結果を残せて満足しているのですが、悔いが残る点としては、以下の2点です。

1点目は、最初の段階で地域による予測の分類は行わなかったので、該当する野菜の主な産地の天候情報に絞るなどの工夫で、もう少し精度があげられたのではないかという点です。

2点目は、価格について、そのままの値を利用して予測しましたが、対数化を試すことをすっかり忘れてしまっており、対数化することでも精度があげられたのではないかという点です。

他にも細かいところは色々できたのではないかと考えています。

皆さんの解法を参考にさせていただきながら、今後のコンペに生かしていきたいと思います。

5.謝辞

最後となってしまいましたが、本コンペを運営してくださいました、Probspase の運営の皆様、一緒にコンペに取り組んでいらっしゃった皆様、Twitter上でやりとりを実施させていただいた皆様に心より感謝申し上げます。

今年上期は、コンペで知り合った皆様と実生活でも交流させていただく機会も増えてきました。

これからも色々な皆さんと交流することで、現実世界での社会の発展のために貢献できるよう頑張っていきたいと思います。

今後とも、よろしくお願いいたします。