今回は、Ridgelinezとの共同開催コンペティション第2弾となります。
Ridgelinezと弊社では、2021年11月よりパートナーシップを開始し、コンペティションを通じたDX人材の発掘や、DX人材のマッチング事業を推進しております。
「Kiva/クラウドファンディングの資金調達額予測」に続く第 2 回目となる今回は、花粉の飛散量予測をテーマに選定しました。
本コンペティションを通して、データサイエンティストの皆さまの活躍の場を広げ、データサイエンスを用いた社会課題解決を目指す協業の取組みについて、少しでも興味・関心を持っていただけたら幸いです。
※1 本コンペティションで優秀な成績を収められた方には、Ridgelinez様の社会変革型プロジェクトへお誘いをさせていただくことがございますこと、ご了承ください。
※2 また本コンペでは、表彰式を兼ねた懇親会を予定しております。ぜひともご参加ください(詳細につきましては、別途ご連絡いたします)。
日本人の多くが毎年患い、今では国民病ともいわれる花粉症。
全国調査によると、花粉症の有病率は1998年が19.6%、2008年が29.8%、2019年には42.5%で10年ごとにほぼ10%増加しています。
花粉の飛散時期については、地域ごとの差異が大きく、さらには季節によって花粉を発する木々の種類(スギ、ヒノキ、イネなど)が変わります。
参考)花粉カレンダー(花粉症ナビ)
https://www.kyowakirin.co.jp/kahun/about/calendar.html
国民の約半数が花粉症を患う日本においては、「明日どの地点で、花粉がどれだけ飛散するのか?」といった花粉予報は、外出を検討する上でなくてはならない情報となりました。
そこで今回は、降水量、気温といった天候データをもとに、一定期間先の花粉飛散量を予測するコンペティションを設計いたしました。
天気予報が、2週間先まで正確に予測できるものとして、ある地点・時刻における花粉飛散量を予測するモデルを作成してください。
1位 100,000円
2位 60,000円
3位 40,000円
※ 入賞者(1-3位)の方には、表彰式にてご自身の解法を発表いただく可能性がございます
提出締切 2023年1月9日 22:00 JST
LB公開 2023年1月9日 24:00 JST
一部ルール修正のお知らせ(2022/11/04)
外部データ利用に関するルールに不適切な記載がございましたので、下記の通り修正しております。
【誤】
本コンペティションの基本情報/データから取得できるデータのみを用いてチャレンジして下さい。
ただし、コンペ外データを用いて学習された学習済みモデルの使用は可能とします。
【正】
本コンペティションの基本情報/データから取得できるデータのみを用いてチャレンジして下さい。
コンペ外データを用いて学習されたモデルの使用も禁止とします。
また、外部データ/学習済みモデルの特例での使用申請について、ルールを追記いたしました。合わせてご確認いただけますと幸いです。
データをダウンロードするにはログインまたはユーザー登録して下さい
【2022/11/10以前にコンペ参加された皆さま】データ再ダウンロードのお願い(2022/11/10)
2018年以降の花粉飛散量データにおいて環境省公開の実データと1日分のずれが見つかり、2022/11/10にデータセットを再配置させていただきました。誠に恐れ入りますが、該当日以前にデータダウンロードされた方につきましては、再度データセットをダウンロードいただきますようお願い申し上げます(経緯詳細につきましてはトピックをご確認ください)。
【異常値データ 補足追記】(2022/11/15)
花粉飛散量に関する空白, -9996,-9997,-9998の異常値データについて、データラベル欄へ説明を追記いたしました。
コンペに使用するデータは2つに分けられます。
訓練テーブルには、2017年2月1日~2020年3月31日までの、花粉飛散量・天候情報が含まれます。
テストテーブルには、2020年4月1日~4月14日までの、天候情報のみが含まれます。
皆さまには、テストテーブルの天候情報に基づき、関東中心の下記3拠点の花粉飛散量を予測していただきます。
宇都宮(宇都宮市中央生涯学習センター)
千葉(千葉県環境研究センター)
府中(東京都多摩小平保健所)
「訓練テーブルデータ」のカラム毎の意味は下記の通りです。
no | カラム名 | 意味 |
---|---|---|
0 | datetime | 年月日時 |
1 | precipitation_utsunomiya | 指定地域の該当日の降水量(mm) |
2 | precipitation_chiba | 指定地域の該当日の降水量(mm) |
3 | precipitation_tokyo | 指定地域の該当日の降水量(mm) |
4 | temperature_utsunomiya | 指定地域の該当日の気温 |
5 | temperature_chiba | 指定地域の該当日の気温 |
6 | temperature_tokyo | 指定地域の該当日の気温 |
7 | winddirection_utsunomiya | 指定地域の該当日の風向 0:静穏 1:北北東 2:北東 3:東北東 4:東 5:東南東 6:南東 7:南南東 8:南 9:南南西 10:南西 11:西南西 12:西 13:西北西 14:北西 15:北北西 16:北 |
8 | winddirection_chiba | 指定地域の該当日の風向 (詳細は7を参考にしてください) |
9 | winddirection_tokyo | 指定地域の該当日の風向 (詳細は7を参考にしてください) |
10 | windspeed_utsunomiya | 指定地域の該当日の風速 |
11 | windspeed_chiba | 指定地域の該当日の風速 |
12 | windspeed_tokyo | 指定地域の該当日の風速 |
13 | pollen_utsunomiya | 指定地域の花粉飛散量 |
14 | pollen_chiba | 指定地域の花粉飛散量 |
15 | pollen_tokyo | 指定地域の花粉飛散量 |
「サンプルサブミット用データ」のカラム毎の意味は下記の通りです。
no | カラム名 | 意味 |
---|---|---|
0 | 年月日時 | 年月日時(YYYYMMDDHH) |
1 | pollen_utsunomiya | 花粉飛散量(目的変数) |
2 | pollen_chiba | 花粉飛散量(目的変数) |
3 | pollen_tokyo | 花粉飛散量(目的変数) |
出典:環境省花粉観測システム(http://kafun.taiki.go.jp/index.aspx )より一部データを抜粋
目標は学習データセットの花粉飛散量情報と天候情報にもとづき、花粉飛散量を予測することです。
回答用のsubmission.csvを用意する(エントリーとヘッダー行を含む) 。
提出されたファイルに余分な行や列が含まれていた場合はエラーとなります。
提出ファイルは以下の列のみを必ず含んでください:
datetime,pollen_utsunomiya,pollen_chiba,pollen_tokyo
20100201,16.0,6.0,0.0,
20100202,13.0,6.0,1.0,
本コンペでは、開催期間終了後 賞金対象者のコードを公開し、ユーザーの皆様にチーティング有無をレビューしていただき順位確定させる、オープンレビュー方式のコンペティションを行います。
コード公開後1週間:
レビュアー(ユーザー)より、チーティングの疑いに関するコメントがある場合は、ご回答をお願いいたします。
※チーティングとは無関係のコメント(ノウハウに関する質疑 等)についてもご回答いただけると幸いですが、順位確定の判断材料とは致しません。
レビュアーからの質疑と、回答状況をふまえて、最終的に運営側で順位確定を判断します。
開始 2022/10/3 0:00 JST
提出締切 2023/1/9 22:00 JST
終了日 2023/1/9 24:00 JST
エントリー締め切り なし
※コンペ期間中であっても、不正が疑われる場合は、運営より確認のためメール連絡させていただくことがございます。一週間以内にご回答いただけない場合も、不正と判断させていただきます。
原則外部データ/学習済みモデルの使用は禁止としておりますが、正解データの入手につながらない場合は、下記承認プロセスにより使用できることといたします。
1.トピックを作成し、取得元情報とデータ(格納先URLも可)を添付
2.運営にて判断・承認
注)ただし、コンペ終了まで7日をきってからの申請は禁止とします。
公平性の担保、チーティング等の不正防止のため、予告なくルールの追加・変更を行う場合がございます。
ご不便をおかけすることもあるかと思いますが、サービス向上のためご了承ください。
本コンペティションは、Ridgelinez株式会社(以下「スポンサー企業」といいます。)による人材発掘を目的とするものです。本コンペティションに参加された方に関して、当社が保有する個人情報等のうち、以下の情報が、スポンサー企業に対して提供されます。
本コンペティションの順位、チーム名、ユーザー名、メールアドレス、所属、出身大学、過去の当社コンペティション参加実績に関する情報、スポンサー企業への関心の有無、紹介文、経験
スポンサー企業に対する、上記個人情報等の提供に同意のうえ、本コンペティションへの参加をお願いいたします。(本コンペティションに参加していない会員の個人情報がスポンサー企業に提供されることはありません。)
コンペティションへの参加に際しては、ProbSpace利用規約(以下、「利用規約」といいます。)に加え、本ProbSpace参加規約(以下「本規約」といいます。)に同意いただく必要があります。利用規約にて定義された用語は、本規約においても同様の意味で用いられるものとします。
第1条(適用)
第2条(定義)
本規約において次の各用語の定義は、それぞれ以下に定めるとおりとします。
第3条(権利の帰属)
第4条(入賞者の義務)
第5条(禁止事項)
第6条(本コンペの変更、中断、終了等)
第7条(損害賠償)
第8条(本規約の変更)
当社は、必要と判断した場合には、参加者に対して事前に通知する(本コンペにかかる当社ウェブサイト上での告知その他当社が適当と認める方法を含みます。)ことにより、いつでも本規約を変更することができるものとします。なお、変更内容の通知後、参加者が当社の定める期間内に本コンペへの参加を取り消す手続をとらなかった場合には、当該参加者は変更後の規約に同意したものとみなされます。当社は、本規約の変更により参加者に生じたすべての損害について一切の責任を負いません。
第9条(その他)
本契約の準拠法は日本法とし、本契約に起因し又は関連する一切の紛争については、当社の本店所在地を管轄する裁判所を第一審の専属的合意管轄裁判所とします。
(制定)2021年11月14日
はい。
最も精度の高い学習モデルを作成した優勝者には、賞金を贈呈します。
順位確定までのプロセスについては、ルール「Open Review Competition」を参照ください。
可能です。チームページから作成いただけます。
こちらから作成いただけます。
コンペティション参加にはアカウント登録が必要となりますのでご注意ください。
本コンペティションの基本情報/データから取得できるデータのみを用いてチャレンジして下さい。
Seed を固定することが推奨です。
ただし、Seed を固定しなくても提出用コードとしては認めています。
「花粉飛散量予測コンペ」のチュートリアルです。
このチュートリアルでは、コンペデータセットに対して下記を行います。
#ライブラリインポート
import numpy as np
import pandas as pd
import lightgbm as lgb
import matplotlib
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
基本的なライブラリとPythonのバージョンを確認します。
#環境確認
!python3 --version
print("Pandas", pd.__version__)
print("Numpy", np.__version__)
Python 3.7.10
Pandas 1.2.5
Numpy 1.19.5
まずはデータを読み込んで見ましょう。
csvデータの読み込みは複数のやり方がありますが、pandas
のread_csv
関数はその中でも機能が豊富で、扱いやすいためこちらを使います。
#データの読み込み
train_df = pd.read_csv("../data/train.csv")
test_df = pd.read_csv("../data/test.csv")
submit_df = pd.read_csv("../data/sample_submission.csv")
print(train_df.shape)
print(test_df.shape)
(12168, 16)
(336, 16)
DataFrame
には.head()
や.columns()
というメソッドが定義されており、これを呼び出すとDataFrame
の先頭の数行を確認できたり、列名を取得できます。
#列名確認
train_df.columns
Index(['datetime', 'precipitation_utsunomiya', 'precipitation_chiba',
'precipitation_tokyo', 'temperature_utsunomiya', 'temperature_chiba',
'temperature_tokyo', 'winddirection_utsunomiya', 'winddirection_chiba',
'winddirection_tokyo', 'windspeed_utsunomiya', 'windspeed_chiba',
'windspeed_tokyo', 'pollen_utsunomiya', 'pollen_chiba', 'pollen_tokyo'],
dtype='object')
今回のデータは3拠点(宇都宮、千葉、東京)における降水量、気温、風向、風速、花粉の飛散量のデータがあることが確認できます。
データを確認してみましょう。
DataFrameには.head()というメソッドが定義されており、これを呼び出すとDataFrameの先頭の数行を確認できます。
train_df.head()
datetime | precipitation_utsunomiya | precipitation_chiba | precipitation_tokyo | temperature_utsunomiya | temperature_chiba | temperature_tokyo | winddirection_utsunomiya | winddirection_chiba | winddirection_tokyo | windspeed_utsunomiya | windspeed_chiba | windspeed_tokyo | pollen_utsunomiya | pollen_chiba | pollen_tokyo | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2017020101 | 0.0 | 0.0 | 0.0 | -1.0 | 4.1 | 2.9 | 16 | 1 | 2 | 2.7 | 2.5 | 1.3 | 0.0 | 8.0 | 0.0 |
1 | 2017020102 | 0.0 | 0.0 | 0.0 | -1.1 | 4.2 | 2.6 | 1 | 1 | 1 | 3.3 | 1.5 | 0.9 | 0.0 | 24.0 | 4.0 |
2 | 2017020103 | 0.0 | 0.0 | 0.0 | -0.7 | 4.2 | 2.4 | 1 | 15 | 16 | 4.0 | 1.7 | 0.6 | 4.0 | 32.0 | 12.0 |
3 | 2017020104 | 0.0 | 0.0 | 0.0 | -1.1 | 4.4 | 1.8 | 1 | 15 | 1 | 4.1 | 3.1 | 1.4 | 0.0 | 12.0 | 0.0 |
4 | 2017020105 | 0.0 | 0.0 | 0.0 | -1.2 | 4.1 | 1.5 | 2 | 14 | 14 | 3.7 | 3.4 | 0.9 | 0.0 | 32.0 | 4.0 |
次に宇都宮の花粉飛散量を可視化してみましょう。
train_df['pollen_utsunomiya'].plot(grid=True)
訓練データは2017年〜2020年3月までのデータであり、花粉飛散量も年ごとに大きな山があることが確認でき、さらには年ごとにデータの動きも異なるため大変予測が難しそうなことが確認できます。
次は簡単な提出データを作成してみましょう。
今回の予測対象の期間は2020年4月1日〜4月14日となるので、訓練データから該当の期間の1年前、つまり、2019年4月1日〜4月14日の数値を抜き出してみましょう。
submit_df['pollen_utsunomiya']=train_df[(train_df['datetime']>=2019040101)&(train_df['datetime']<=2019041424)]['pollen_utsunomiya'].values
submit_df['pollen_chiba']=train_df[(train_df['datetime']>=2019040101)&(train_df['datetime']<=2019041424)]['pollen_chiba'].values
submit_df['pollen_tokyo']=train_df[(train_df['datetime']>=2019040101)&(train_df['datetime']<=2019041424)]['pollen_tokyo'].values
下記のようにして、提出用のsample.csvを出力します。
submit_df.to_csv('sample.csv',index=False)
提出してみるとわかりますが、前年数値そのままではMAE評価がかなり大きいことがわかります。
ぜひ、今回のデータに含まれる降水量や風向きなどの天候情報をうまく予測に取り込んでみましょう。
本コンペティションは、Ridgelinez株式会社(以下「スポンサー企業」といいます。)による人材発掘を目的とするものです。本コンペティションに参加された方に関して、当社が保有する個人情報等のうち、以下の情報が、スポンサー企業に対して提供されます。
本コンペティションの順位、チーム名、ユーザー名、メールアドレス、所属、出身大学、過去の当社コンペティション参加実績に関する情報、スポンサー企業への関心の有無、紹介文、経験
スポンサー企業に対する、上記個人情報等の提供に同意のうえ、本コンペティションへの参加をお願いいたします。(本コンペティションに参加していない会員の個人情報がスポンサー企業に提供されることはありません。)
コンペティションへの参加に際しては、ProbSpace利用規約(以下、「利用規約」といいます。)に加え、本ProbSpace参加規約(以下「本規約」といいます。)に同意いただく必要があります。利用規約にて定義された用語は、本規約においても同様の意味で用いられるものとします。
第1条(適用)
第2条(定義)
本規約において次の各用語の定義は、それぞれ以下に定めるとおりとします。
第3条(権利の帰属)
第4条(入賞者の義務)
第5条(禁止事項)
第6条(本コンペの変更、中断、終了等)
第7条(損害賠償)
第8条(本規約の変更)
当社は、必要と判断した場合には、参加者に対して事前に通知する(本コンペにかかる当社ウェブサイト上での告知その他当社が適当と認める方法を含みます。)ことにより、いつでも本規約を変更することができるものとします。なお、変更内容の通知後、参加者が当社の定める期間内に本コンペへの参加を取り消す手続をとらなかった場合には、当該参加者は変更後の規約に同意したものとみなされます。当社は、本規約の変更により参加者に生じたすべての損害について一切の責任を負いません。
第9条(その他)
本契約の準拠法は日本法とし、本契約に起因し又は関連する一切の紛争については、当社の本店所在地を管轄する裁判所を第一審の専属的合意管轄裁判所とします。
(制定)2021年11月14日