ポッカサッポロ 豆腐の需要予測
ポッカサッポロフード&ビバレッジ株式会社
  • 締切: 2016年03月31日
  • 応募:1659件 / 113人
  • 1位¥150,000、2位¥100,000、3位¥50,000

気象データと特売情報から5種類の豆腐の需要予測モデルを作成していただきます。

さて、今回のテーマは「豆腐」です。

豆腐は古来から食べられてきた日本食の一つで、長寿食といわれてきました。近年では、健康食品やダイエット食品としても注目されています。

このように、食品として多くの魅力を持つ豆腐ですが、保存期間が短く、作り置きができないという特徴も持ちあわせています。

工場では次の日の売れ行きを予想して豆腐を製造していますが、もし欠品した場合は、売上機会損失や顧客の信頼低下を招きます。一方で、売れ残ってしまうと、その豆腐は廃棄されることになってしまいます。

このような食品の廃棄に関する問題は「食品ロス」と呼ばれ、現在日本が直面している社会問題のひとつです。世界の生産量の実に3分の1にあたる約13億トンの食料が毎年廃棄されており、廃棄にかかる経済的コストは約7500億ドルに及びます。

限りある資源を有効に活用しつつ経済を健全に発展させるためには、食品の需要予測の精度を高めることが重要で、食品業界においても、今データサイエンスが注目されつつあります。

ある研究では、豆腐の売上が気象と連動し、さらに「どのくらいの気温か」よりも「どのような経過をたどってこの気温になったか」が重要という成果もあるようです。

今回のコンペでは、そんな豆腐を、食品ロス問題から救っていただくために最適な生産量を予測していただきます。


評価関数
・精度評価は、評価関数「RMSE(Root Mean Squared Error )」を使用します。
・評価値は0以上の値をとり、精度が高いほど小さな値となります。
・今回の目的変数yiは、その日に生産すべき豆腐の数です。(2015年の豆腐5商品(A,B,C,D,E)の生産すべき数(=生産実績数):2016/2/17追記)
・5商品それぞれのRMSEの総和を総合スコアとし、そのスコアが最も良いモデルが今回の勝者となります。 


最終順位の決定
1.コンペ最終日までの評価(暫定評価)は評価用データセットの一部で評価し、コンペ終了後の評価(最終評価)は評価用データセットの残りの部分で評価します。※スコアボードはコンペ終了時に自動的に最終評価に切り替わり、その評価値とレポートの評価で最終順位を決定します。

2.スコアが同値の場合は、早い日時でご応募いただいた参加者を上位とします。

・コンペ終了後、入賞候補者には以下を提出していただきます。
 - 予測モデルのソースコード
 - 学習済モデル
 - 解説書(実行環境、実行時間*1、予測結果の再現手順**1、乱数シード**2、特徴量の説明や寄与度*3、モデリング手法、工夫点、得られた示唆等)
   *1 : 前処理部分、学習部分、予測部分それぞれに対して明記
   *2 : Random Forest等の乱数を利用した手法を用いた場合
   *3 : 算出が可能な手法を用いた場合
 - アンケート(参加の動機、費やした時間、ご意見・感想等)

3.再現性検証期間中、以下いずれかに該当する場合は入賞資格を失います。このため、提出前に必ず問題がないことを確認してください。
 - 事務局からの手続き上の連絡・要求に対して指定された期限内に対応しない
 - 参加条件やルールを満たしていない
 - プログラムが動作しない
 - 最終提出した予測値と学習済モデルから出力される予測値が一致しない

4.入賞候補者が入賞資格を失った場合は、スコアが次点の方が繰り上がり、新たな入賞候補となります。全入賞者の確定をもって、それを最終順位とします。

心構え
・企業課題の達成、社会問題の解決、研究成果の共有等、大前提となる目的に合わせ、実用性を意識したアプローチで臨むこと。

システムの利用
・利用アカウントは1人につき1つまで。ただし、アカウントが1つであればチームでの参加も可能。

情報の取り扱い
・同じチーム以外の参加者と本コンペの予測に関連するデータ・ソースコードを共有する行為は禁止。

データの利用
・提供するデータ以外のデータを用いてモデルを学習することは禁止。
・ある日の予測をする時は、その日に確定している情報のみ使用できます。
・今回の気象データの場合は、ある日の生産量を予測する場合、その日の気象データもしくはそれ以前の日付の気象データのみ使用できます。
・曜日情報、日本の祝日情報は使用可能と致します。(2016/3/9追記)

実装方法
・モデルの学習に利用するツールは、オープン且つ無料なもの(python, R 等)に限定。
・ソースコードは、以下のように、前処理、学習、予測、の3つに分け、それぞれを実行すれば処理が進むように実装すること。
 ①Preprocessing
  提供データを読み込み、データに前処理を施し、モデルに入力が可能な状態でファイル出力するモジュール。get_train_dataやget_test_dataのように、学習用と評価用を分けて、前処理を行う関数を定義してください。
 ②Learning
  ①で作成したファイルを読み込み、モデルを学習するモジュール。学習済みモデルや特徴量、クロスバリデーションの評価結果を出力する関数も定義してください。
 ③Predicting
  ①で作成したテストデータ及び②で作成したモデルを読み込み、予測結果をファイルとして出力するモジュール。
2016年2月16日(火)コンペ開始
2016年3月31日(木)コンペ終了
本コンペに使用する環境センサーネットワークデータは、株式会社NTTドコモより提供頂きました。