農業従事者にとって、野菜の価格を正確に予測することは、事業運営の安定性を確保する上で重要です。しかしながら、天候の変動性が生産量に及ぼす影響は、価格の予測を極めて複雑なものにしており、農業業界全体で解決すべき重要な課題となっています。
この課題に取り組むため、NEDO(産業技術総合開発機構)、大学、ベンチャー企業などが中心となり、野菜の価格変動を予測するモデルの開発が進められています。これらの取り組みもあり、価格変動に影響を及ぼす要素とその関連性がより詳細に明らかになってきました。
具体的に、例えば以下のような関係性が明らかになっています:
これらの因子を複合的に考慮することで、より精度の高い価格予測が可能となります。
本コンペティションを通じて、皆様には精度の高い価格推定モデルの開発を追求するだけでなく、店頭の野菜の価格がどのように決定され、その背後にある様々な要素を理解し、興味を深めていただければ幸いです。
2019/11月までのデータをもとに、2019年12月の各地域、野菜の価格を予測していただきます。
今回のコンペティションでは、各地の野菜の価格情報に加えて、気候情報等が補足データセットとして提供されています。これら多種多様なデータセットを適切に組み合わせたテーブルコンペの手法に親しんでいただけますと幸いです。
野菜データの「見える化」―データ活用による野菜振興「槇 晋介」
データ分析のための数理モデル入門「江崎貴裕」
データをダウンロードするにはログインまたはユーザー登録して下さい
コンペに使用するデータは、大きく2種類です。
※ 出荷量が少ない一部組み合わせのデータについては提供されていません
※ コロナの影響を考慮し、2019年までのデータに限定しています
だいこん、ばれいしょ、トマト、にら、ミニトマト、きゅうり、その他の野菜、しょうが、ちんげんさい、かぼちゃ、やまのいも、えのきだけ、みつば、ねぎ、はくさい、生しいたけ、レタス、ほうれんそう、たまねぎ、ごぼう、こまつな、なめこ、にんにく、ブロッコリー、ピーマン、セルリー、れんこん、かぶ、しゅんぎく、カリフラワー、その他の菜類、ししとうがらし、しめじ、にんじん、さといも、なす、キャベツ、かんしょ、パセリ、みずな、さやえんどう、さやいんげん
東北、関東、北海道、九州、近畿、東海、四国、中国、北陸
日照時間0.1時間未満日数(日)、日降水量の最大(mm)、日照時間(時間)、降水量の合計(mm)、降雪量合計(cm)、日最高気温の平均(℃)、日最高気温25℃以上日数(日)、最深積雪(cm)、平均気温(℃)、日平均気温0℃未満日数(日)、最高気温(℃)、日最低気温の平均(℃)、日最高気温0℃未満日数(日)、最低気温(℃)、日平均気温25℃以上日探数(日)、日最低気温25℃以上日数(日)、日最低気温0℃未満日数(日)
出典:
このコンペティションは、RMSLEによって評価されます。
訓練用データセットを使って作成したモデルで予測を行い、 その結果を次のフォーマットのcsvファイルで提出してください。
2019年11月までのデータをもとに、2019年12月の各地域、野菜の価格を予測していただきます。
from sklearn.metrics import mean_squared_log_error
# y_trueが真の値、y_predが予測値
y_true = np.array([1.0, 1.1, 1.3, 1.4, 1.6, 1.7, 1.9, 2.0])
y_pred = np.array([1.0, 1.2, 1.3, 1.5, 1.5, 1.9, 1.9, 2.0])
# scikit-learn で計算する場合
rmsle = np.sqrt(mean_squared_log_error(y_true, y_pred))
print(rmsle)
0.03618562381135613
回答用のsubmission.csvを用意する(エントリーとヘッダー行を含む) 。
提出されたファイルに余分な行や列が含まれていた場合はエラーとなります。
提出する際には価格データのカラムがインデックスとなるように転置し提出を行ってください。
id,y
えのきだけ_中国,211.252894562
えのきだけ_九州,112.664679218
えのきだけ_北海道,19.432182194
えのきだけ_北陸,182.880560423
本コンペでは、開催期間終了後 賞金対象者のコードを公開し、ユーザーの皆様にチーティング有無をレビューしていただき順位確定させる、オープンレビュー方式のコンペティションを行います。
コード公開後1週間:
レビュアー(ユーザー)より、チーティングの疑いに関するコメントがある場合は、ご回答をお願いいたします。
※チーティングとは無関係のコメント(ノウハウに関する質疑 等)についてもご回答いただけると幸いですが、順位確定の判断材料とは致しません。
レビュアーからの質疑と、回答状況をふまえて、最終的に運営側で順位確定を判断します。
開始日 2023/5/19 0:00 JST
提出締切 2023/8/20 22:00 JST
終了日 2023/8/20 24:00 JST
エントリー締め切り なし
※コンペ期間中であっても、不正が疑われる場合は、運営より確認のためメール連絡させていただくことがございます。一週間以内にご回答いただけない場合も、不正と判断させていただきます。
原則外部データ/学習済みモデルの使用は禁止としておりますが、正解データの入手につながらない場合は、下記承認プロセスにより使用できることといたします。
1.トピックを作成し、取得元情報とデータ(格納先URLも可)を添付
2.運営にて判断・承認
注)ただし、コンペ終了まで7日をきってからの申請は禁止とします。
公平性の担保、チーティング等の不正防止のため、予告なくルールの追加・変更を行う場合がございます。
ご不便をおかけすることもあるかと思いますが、サービス向上のためご了承ください。
はい。
最も精度の高い学習モデルを作成した優勝者には、賞金を贈呈します。
順位確定までのプロセスについては、ルール「Open Review Competition」を参照ください。
可能です。チームページから作成いただけます。
こちらから作成いただけます。
コンペティション参加にはアカウント登録が必要となりますのでご注意ください。
Seed を固定することが推奨です。
ただし、Seed を固定しなくても提出用コードとしては認めています。
このチュートリアルでは、野菜の相場データに対して
を行います。
#環境確認
import pandas as pd
import numpy as np
import sklearn
!python3 --version
print(pd.__version__)
print(np.__version__)
print(sklearn.__version__)
import matplotlib
print(matplotlib.__version__)
Python 3.7.7
1.1.5
1.19.4
0.21.3
3.1.3
まずはデータを読みます。
csvデータの読み込みは一般的によく使われるpandas
のread_csv
関数が機能が豊富なため利用します。
csvデータについて、pandas.DataFrame
として返してくれます。
#データの読み込みと前処理
import pandas as pd
train_data = pd.read_csv("train_data.csv", index_col='id')
print(train_data.shape)
(47, 340)
また、DataFrame
には.head()
というメソッドが定義されており、これを呼び出すとDataFrame
の先頭の数行を確認できます。
train_data.head()
えのきだけ_中国 | えのきだけ_九州 | えのきだけ_北海道 | えのきだけ_北陸 | えのきだけ_四国 | えのきだけ_東北 | えのきだけ_東海 | えのきだけ_近畿 | えのきだけ_関東 | かぶ_北海道 | ... | レタス_関東 | 生しいたけ_中国 | 生しいたけ_九州 | 生しいたけ_北海道 | 生しいたけ_北陸 | 生しいたけ_四国 | 生しいたけ_東北 | 生しいたけ_東海 | 生しいたけ_近畿 | 生しいたけ_関東 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | |||||||||||||||||||||
2016-01-01 | 314.0 | 301.0 | 304.0 | 274.0 | 267.0 | 213.0 | 278.0 | 285.0 | 279.0 | 124.0 | ... | 271.0 | 1098.0 | 1048.0 | 737.0 | 1231.0 | 1021.0 | 988.0 | 1119.0 | 1113.0 | 1118.0 |
2016-02-01 | 306.0 | 316.0 | 309.0 | 288.0 | 293.0 | 278.0 | 286.0 | 295.0 | 291.0 | 157.0 | ... | 311.0 | 1080.0 | 956.0 | 750.0 | 1241.0 | 1037.0 | 964.0 | 1139.0 | 1127.0 | 1116.0 |
2016-03-01 | 245.0 | 217.0 | 317.0 | 219.0 | 227.0 | 164.0 | 210.0 | 213.0 | 204.0 | 185.0 | ... | 278.0 | 946.0 | 739.0 | 728.0 | 1202.0 | 886.0 | 941.0 | 989.0 | 937.0 | 1044.0 |
2016-04-01 | 227.0 | 182.0 | 304.0 | 195.0 | 202.0 | 153.0 | 205.0 | 203.0 | 189.0 | 189.0 | ... | 209.0 | 875.0 | 749.0 | 734.0 | 1014.0 | 827.0 | 887.0 | 924.0 | 882.0 | 982.0 |
2016-05-01 | 232.0 | 202.0 | 306.0 | 206.0 | 215.0 | 170.0 | 221.0 | 220.0 | 206.0 | 150.0 | ... | 165.0 | 886.0 | 821.0 | 710.0 | 1055.0 | 892.0 | 867.0 | 942.0 | 946.0 | 990.0 |
5 rows × 340 columns
同様に天候情報についてもデータを読み込みます。
weather = pd.read_csv('weather.csv', index_col=0, header=[0,1,2])
print(weather.shape)
(59, 5967)
weather.head()
宗谷 | ... | 沖縄 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
稚内 | ... | 南大東(南大東島) | |||||||||||||||||||
平均気温(℃) | 日平均気温25℃以上日数(日) | 日最高気温の平均(℃) | 日平均気温0℃未満日数(日) | 日最低気温の平均(℃) | 日最高気温25℃以上日数(日) | 最高気温(℃) | 日最高気温0℃未満日数(日) | 最低気温(℃) | 日最低気温25℃以上日数(日) | ... | 日最高気温0℃未満日数(日) | 最低気温(℃) | 日最低気温25℃以上日数(日) | 日最低気温0℃未満日数(日) | 降水量の合計(mm) | 日降水量の最大(mm) | 最深積雪(cm) | 降雪量合計(cm) | 日照時間(時間) | 日照時間0.1時間未満日数(日) | |
年月 | |||||||||||||||||||||
2015/1 | -2.9 | 0.0 | -1.1 | 28.0 | -5.0 | 0.0 | 4.3 | 19.0 | -8.1 | 0.0 | ... | 0.0 | 7.3 | 0.0 | 0.0 | 42.0 | 14.5 | 0.0 | 0.0 | 99.8 | 5.0 |
2015/2 | -1.7 | 0.0 | 0.2 | 21.0 | -4.0 | 0.0 | 5.3 | 14.0 | -11.0 | 0.0 | ... | 0.0 | 5.8 | 0.0 | 0.0 | 7.0 | 4.5 | 0.0 | 0.0 | 126.7 | 1.0 |
2015/3 | 2.3 | 0.0 | 4.4 | 4.0 | 0.1 | 0.0 | 10.0 | 0.0 | -5.2 | 0.0 | ... | 0.0 | 10.1 | 0.0 | 0.0 | 26.0 | 10.5 | 0.0 | 0.0 | 178.0 | 2.0 |
2015/4 | 5.9 | 0.0 | 8.9 | 0.0 | 3.1 | 0.0 | 15.7 | 0.0 | -2.0 | 0.0 | ... | 0.0 | 11.8 | 0.0 | 0.0 | 120.0 | 36.0 | 0.0 | 0.0 | 171.2 | 1.0 |
2015/5 | 9.9 | 0.0 | 13.1 | 0.0 | 7.1 | 0.0 | 18.8 | 0.0 | 2.9 | 0.0 | ... | 0.0 | 16.2 | 8.0 | 0.0 | 313.5 | 166.0 | 0.0 | 0.0 | 210.0 | 1.0 |
5 rows × 5967 columns
天候情報については2015年1月分のデータから存在するようです。
毎月1日の地域ごとの野菜の価格がデータにまとめられていることがわかります。
訓練データの各品目の価格分布について確認します。
train_data.describe()
えのきだけ_中国 | えのきだけ_九州 | えのきだけ_北海道 | えのきだけ_北陸 | えのきだけ_四国 | えのきだけ_東北 | えのきだけ_東海 | えのきだけ_近畿 | えのきだけ_関東 | かぶ_北海道 | ... | レタス_関東 | 生しいたけ_中国 | 生しいたけ_九州 | 生しいたけ_北海道 | 生しいたけ_北陸 | 生しいたけ_四国 | 生しいたけ_東北 | 生しいたけ_東海 | 生しいたけ_近畿 | 生しいたけ_関東 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | ... | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 | 47.000000 |
mean | 251.425532 | 235.574468 | 284.723404 | 230.659574 | 240.829787 | 179.957447 | 239.872340 | 232.978723 | 223.744681 | 156.638298 | ... | 208.936170 | 898.936170 | 857.808511 | 684.914894 | 1019.872340 | 896.361702 | 859.489362 | 951.404255 | 938.106383 | 995.234043 |
std | 55.707990 | 63.407497 | 22.070738 | 55.274523 | 55.517455 | 66.101686 | 55.335584 | 57.252868 | 58.983221 | 37.791433 | ... | 95.682538 | 118.526534 | 156.466782 | 57.738101 | 126.364486 | 115.511420 | 92.727247 | 120.762192 | 125.053421 | 97.040380 |
min | 166.000000 | 119.000000 | 237.000000 | 152.000000 | 151.000000 | 77.000000 | 150.000000 | 143.000000 | 128.000000 | 96.000000 | ... | 110.000000 | 718.000000 | 624.000000 | 525.000000 | 759.000000 | 721.000000 | 686.000000 | 780.000000 | 748.000000 | 859.000000 |
25% | 207.000000 | 180.500000 | 269.000000 | 192.500000 | 203.000000 | 135.500000 | 203.500000 | 185.500000 | 174.500000 | 135.000000 | ... | 148.000000 | 805.000000 | 732.000000 | 637.500000 | 929.500000 | 794.000000 | 793.500000 | 853.000000 | 829.000000 | 914.000000 |
50% | 246.000000 | 228.000000 | 287.000000 | 218.000000 | 230.000000 | 168.000000 | 223.000000 | 220.000000 | 208.000000 | 152.000000 | ... | 174.000000 | 889.000000 | 821.000000 | 686.000000 | 1017.000000 | 883.000000 | 847.000000 | 942.000000 | 932.000000 | 979.000000 |
75% | 293.000000 | 287.500000 | 301.000000 | 263.500000 | 272.500000 | 230.000000 | 276.000000 | 274.500000 | 268.000000 | 167.500000 | ... | 230.500000 | 989.500000 | 1004.000000 | 731.000000 | 1112.500000 | 994.000000 | 943.000000 | 1033.500000 | 1043.500000 | 1073.000000 |
max | 388.000000 | 384.000000 | 331.000000 | 372.000000 | 383.000000 | 330.000000 | 382.000000 | 365.000000 | 364.000000 | 286.000000 | ... | 550.000000 | 1160.000000 | 1251.000000 | 801.000000 | 1247.000000 | 1188.000000 | 1029.000000 | 1265.000000 | 1251.000000 | 1225.000000 |
8 rows × 340 columns
stdが各カラムにおける標準偏差であり、この値が大きいほど価格が大きく変動していることになります。品目毎に値動きの大きさは変わります。
また、同じ品目でも地域ごとに価格の安定した地域、不安定な地域があることが確認できました。産地からの距離が運送に影響を与えていたり、消費地域の需要の高低といった要因によって、価格の安定性に影響が出ていると考えられます。
set(weather.columns) - set(weather.dropna(axis=1).columns)
{('三重', '上野', '最深積雪(cm)'),
('三重', '上野', '降雪量合計(cm)'),
('三重', '四日市', '最深積雪(cm)'),
('三重', '四日市', '降雪量合計(cm)'),
('三重', '尾鷲', '最深積雪(cm)'),
('三重', '尾鷲', '降雪量合計(cm)'),
('兵庫', '兎和野高原', '最深積雪(cm)'),
('兵庫', '兎和野高原', '降雪量合計(cm)'),
('兵庫', '姫路', '最深積雪(cm)'),
('兵庫', '姫路', '降雪量合計(cm)'),
('兵庫', '洲本', '最深積雪(cm)'),
('兵庫', '洲本', '降雪量合計(cm)'),
('千葉', '勝浦', '最深積雪(cm)'),
('千葉', '勝浦', '降雪量合計(cm)'),
('千葉', '千葉', '最深積雪(cm)'),
('千葉', '千葉', '降雪量合計(cm)'),
('千葉', '館山', '最深積雪(cm)'),
('千葉', '館山', '降雪量合計(cm)'),
('和歌山', '潮岬', '最深積雪(cm)'),
('和歌山', '潮岬', '降雪量合計(cm)'),
('大分', '日田', '最深積雪(cm)'),
('大分', '日田', '降雪量合計(cm)'),
('宮崎', '延岡', '最深積雪(cm)'),
('宮崎', '延岡', '降雪量合計(cm)'),
('宮崎', '油津', '最深積雪(cm)'),
('宮崎', '油津', '降雪量合計(cm)'),
('宮崎', '都城', '最深積雪(cm)'),
('宮崎', '都城', '降雪量合計(cm)'),
('山口', '萩', '最深積雪(cm)'),
('山口', '萩', '降雪量合計(cm)'),
('島根', '浜田', '最深積雪(cm)'),
('島根', '浜田', '降雪量合計(cm)'),
('広島', '呉', '最深積雪(cm)'),
('広島', '呉', '降雪量合計(cm)'),
('広島', '福山', '最深積雪(cm)'),
('広島', '福山', '降雪量合計(cm)'),
('愛媛', '宇和島', '最深積雪(cm)'),
('愛媛', '宇和島', '降雪量合計(cm)'),
('愛知', '伊良湖', '最深積雪(cm)'),
('愛知', '伊良湖', '降雪量合計(cm)'),
('東京', '三宅島', '最深積雪(cm)'),
('東京', '三宅島', '降雪量合計(cm)'),
('東京', '八丈島', '最深積雪(cm)'),
('東京', '八丈島', '降雪量合計(cm)'),
('東京', '南鳥島', '最深積雪(cm)'),
('東京', '南鳥島', '降雪量合計(cm)'),
('東京', '大島', '最深積雪(cm)'),
('東京', '大島', '降雪量合計(cm)'),
('東京', '父島', '最深積雪(cm)'),
('東京', '父島', '降雪量合計(cm)'),
('沖縄', '与那国島', '最深積雪(cm)'),
('沖縄', '与那国島', '降雪量合計(cm)'),
('沖縄', '久米島', '最深積雪(cm)'),
('沖縄', '久米島', '降雪量合計(cm)'),
('沖縄', '名護', '最深積雪(cm)'),
('沖縄', '名護', '降雪量合計(cm)'),
('沖縄', '西表島', '最深積雪(cm)'),
('沖縄', '西表島', '降雪量合計(cm)'),
('熊本', '人吉', '最深積雪(cm)'),
('熊本', '人吉', '降雪量合計(cm)'),
('熊本', '牛深', '最深積雪(cm)'),
('熊本', '牛深', '降雪量合計(cm)'),
('福岡', '飯塚', '最深積雪(cm)'),
('福岡', '飯塚', '降雪量合計(cm)'),
('福島', '小名浜', '最深積雪(cm)'),
('福島', '小名浜', '降雪量合計(cm)'),
('長崎', '佐世保', '最深積雪(cm)'),
('長崎', '佐世保', '降雪量合計(cm)'),
('長崎', '厳原', '最深積雪(cm)'),
('長崎', '厳原', '降雪量合計(cm)'),
('長崎', '平戸', '最深積雪(cm)'),
('長崎', '平戸', '降雪量合計(cm)'),
('長崎', '福江', '最深積雪(cm)'),
('長崎', '福江', '降雪量合計(cm)'),
('長崎', '雲仙岳', '最深積雪(cm)'),
('長崎', '雲仙岳', '降雪量合計(cm)'),
('静岡', '三島', '最深積雪(cm)'),
('静岡', '三島', '降雪量合計(cm)'),
('静岡', '御前崎', '最深積雪(cm)'),
('静岡', '御前崎', '降雪量合計(cm)'),
('静岡', '浜松', '最深積雪(cm)'),
('静岡', '浜松', '降雪量合計(cm)'),
('静岡', '石廊崎', '最深積雪(cm)'),
('静岡', '石廊崎', '降雪量合計(cm)'),
('静岡', '網代', '最深積雪(cm)'),
('静岡', '網代', '降雪量合計(cm)'),
('香川', '多度津', '最深積雪(cm)'),
('香川', '多度津', '降雪量合計(cm)'),
('高知', '室戸岬', '最深積雪(cm)'),
('高知', '室戸岬', '降雪量合計(cm)'),
('高知', '宿毛', '最深積雪(cm)'),
('高知', '宿毛', '降雪量合計(cm)'),
('高知', '清水', '最深積雪(cm)'),
('高知', '清水', '降雪量合計(cm)'),
('鹿児島', '屋久島', '最深積雪(cm)'),
('鹿児島', '屋久島', '降雪量合計(cm)'),
('鹿児島', '枕崎', '最深積雪(cm)'),
('鹿児島', '枕崎', '降雪量合計(cm)'),
('鹿児島', '沖永良部', '最深積雪(cm)'),
('鹿児島', '沖永良部', '降雪量合計(cm)'),
('鹿児島', '種子島', '最深積雪(cm)'),
('鹿児島', '種子島', '降雪量合計(cm)'),
('鹿児島', '阿久根', '最深積雪(cm)'),
('鹿児島', '阿久根', '降雪量合計(cm)')}
非降雪地帯の降雪に関するカラムにはNaN
が含まれるようです。
モデルに投入する目的変数(y)と、説明変数(X)を作成します。
今回は前月の天候情報からある月の相場を予測します。
train_dataでは、月次の価格データが時系列で与えられるため、2か月以上前の農作物の価格や、その推移情報についても活用することが可能です。
X = weather.iloc[11:-1, :].fillna(0)
y = train_data
いよいよ予測モデルの作成に入ります。model.fit('説明変数','目的変数')
とすることで、学習データを使用した回帰モデルを作成できます。
今回は、Lasso回帰と呼ばれる回帰手法を利用して予測をします。比較用に一般的な線形回帰モデルでも学習をしてみます。
#scikit-learnライブラリをimport
import sklearn
from sklearn.linear_model import Lasso
from sklearn.linear_model import LinearRegression
#線形回帰モデルのインスタンス化
Lasso = Lasso(max_iter=10000)
lr = LinearRegression()
#予測モデルの作成
Lasso.fit(X, y)
lr.fit(X, y)
また、コンペの評価指標となるRMSLE
スコアを確認してみましょう。
今回は、sklearn.metrics
に含まれるmean_squared_error
メソッドを使用します。
0に近いほど予測精度が高いことを表します。
モデルを元にした予測値は、model.predict('説明変数')
で表します。
from sklearn.metrics import mean_squared_log_error
y_true = y
y_pred = lr.predict(X)
print(np.sqrt(mean_squared_log_error(y_true, y_pred)))
2.145828653485621e-15
今回作成したモデルのRMSLEは上記の通りでした。
最後に、作成したモデルを使用して将来の野菜価格を予測します。
test_data = weather.iloc[-1:, :].fillna(0)
test_data.head()
宗谷 | ... | 沖縄 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
稚内 | ... | 南大東(南大東島) | |||||||||||||||||||
平均気温(℃) | 日平均気温25℃以上日数(日) | 日最高気温の平均(℃) | 日平均気温0℃未満日数(日) | 日最低気温の平均(℃) | 日最高気温25℃以上日数(日) | 最高気温(℃) | 日最高気温0℃未満日数(日) | 最低気温(℃) | 日最低気温25℃以上日数(日) | ... | 日最高気温0℃未満日数(日) | 最低気温(℃) | 日最低気温25℃以上日数(日) | 日最低気温0℃未満日数(日) | 降水量の合計(mm) | 日降水量の最大(mm) | 最深積雪(cm) | 降雪量合計(cm) | 日照時間(時間) | 日照時間0.1時間未満日数(日) | |
年月 | |||||||||||||||||||||
2019/11 | 2.6 | 0.0 | 5.3 | 10.0 | -0.3 | 0.0 | 12.8 | 4.0 | -7.3 | 0.0 | ... | 0.0 | 16.7 | 0.0 | 0.0 | 54.5 | 32.5 | 0.0 | 0.0 | 123.5 | 6.0 |
1 rows × 5967 columns
先ほど使用したmodel.predict('説明変数')
の説明変数
にテストデータの値を代入することで、テストデータの予測値を算出することができます。
下記のようにして、提出用のsubmission.csv
を出力することが可能です。
#テスト結果の出力
test_predicted = lr.predict(test_data)
submit_df = pd.DataFrame(test_predicted)
submit_df.columns = train_data.columns
submit_df = submit_df.transpose()
submit_df.index.name = 'id'
submit_df.columns = ['y']
submit_df.to_csv('submission.csv')
submit_df
id y
えのきだけ_中国 314.878998
えのきだけ_九州 288.642959
えのきだけ_北海道 282.941308
えのきだけ_北陸 279.403830
えのきだけ_四国 285.298373
... ...
生しいたけ_四国 1040.834107
生しいたけ_東北 975.056885
生しいたけ_東海 1124.099756
生しいたけ_近畿 1132.671180
生しいたけ_関東 1110.588409
コンペティションへの参加に際しては、ProbSpace利用規約(以下、「利用規約」といいます。)に加え、本ProbSpace参加規約(以下「本規約」といいます。)に同意いただく必要があります。利用規約にて定義された用語は、本規約においても同様の意味で用いられるものとします。
第1条(適用)
第2条(定義)
本規約において次の各用語の定義は、それぞれ以下に定めるとおりとします。
第3条(権利の帰属)
第4条(入賞者の義務)
第5条(禁止事項)
第6条(本コンペの変更、中断、終了等)
第7条(損害賠償)
第8条(本規約の変更)
当社は、必要と判断した場合には、参加者に対して事前に通知する(本コンペにかかる当社ウェブサイト上での告知その他当社が適当と認める方法を含みます。)ことにより、いつでも本規約を変更することができるものとします。なお、変更内容の通知後、参加者が当社の定める期間内に本コンペへの参加を取り消す手続をとらなかった場合には、当該参加者は変更後の規約に同意したものとみなされます。当社は、本規約の変更により参加者に生じたすべての損害について一切の責任を負いません。
第9条(その他)
本契約の準拠法は日本法とし、本契約に起因し又は関連する一切の紛争については、当社の本店所在地を管轄する裁判所を第一審の専属的合意管轄裁判所とします。
(制定)2020年6月22日