天池---知恵交通予測挑戦試合総括(三)
1992 ワード
2017/07--2017/09天池知恵交通予測試合の構想とモデルの総括(三)
前提レビュー
前の2編の天池知恵交通予測試合の構想とモデル総括ブログでは試合中のデータ処理、特徴選択及び基本機械学習モデルの使用を総括したが、第2編では主に私たちがデータ分析に基づいて得たStaticの統計モデルを紹介した.
このブログでは、主に試合中に使われたベストマッチモデル(ルールモデル)を紹介します.
1 BestMape
BestMapeとは,問題の評価関数から出発し,ある期間の車両旅行時間travel_を暴力的に巡る方法で予測することを期待する.time,各月のデータの可視化分析により,テストセットは,前の時間のデータ傾向を前の数ヶ月と比較した後,最終的に3月4月の元のデータをbestMapeモデルのトレーニングセットとして使用することを選択した.つまり、この2ヶ月のlinkごとの予測期間のtravle_を統計しました.timeの極大極小値は、min値を起点として、0.1のステップを上にループして、各予測値とその期間内の複数の真実値のMape値をそれぞれ計算し、最終的にMape値が最も小さいものをその期間のlinkの予測値として選択する.
以前は比較的自信のあるデータ可視化の根拠があったので,このような統計値は全体的に良好なMape指標をもたらすと考えられる.
このbestMapeモデルはLGBMに比べて予測効果が高い最終オンラインテスト結果が良好であった.このような結果は確かに私たちを驚かせ、驚喜させた.このようなモデルは単にモデルとして直接予測するだけでなく,予測値を特徴としてモデルの訓練を再開することができるからである.
2 BestMape疑似コード
Input: travel_time List Link_id List
Output: The best travel_time with best Mape of each Link_id in every time phases
Global variables:
double bestMape = 100.0;
double bestTravelTime minValue maxValue = 0.0;
double step = 0.1;
ArrayList travel_time= new ArrayList();
ArrayList linkIdList = new ArrayList();
----START
maxValue = Collections.max(tmpList);
minValue = Collections.min(tmpList);
for var i to limit by step do
ArrayList tmpMapeList = new ArrayList();
double realData = 0.0;
double preData = 0.0;
double sum = 0.0;
double mapeTmp = 0.0;
for(int j=0;j
私のブログ:https://NingSM.github.io
転載先を明記してください.ありがとうございます.
Input: travel_time List Link_id List
Output: The best travel_time with best Mape of each Link_id in every time phases
Global variables:
double bestMape = 100.0;
double bestTravelTime minValue maxValue = 0.0;
double step = 0.1;
ArrayList travel_time= new ArrayList();
ArrayList linkIdList = new ArrayList();
----START
maxValue = Collections.max(tmpList);
minValue = Collections.min(tmpList);
for var i to limit by step do
ArrayList tmpMapeList = new ArrayList();
double realData = 0.0;
double preData = 0.0;
double sum = 0.0;
double mapeTmp = 0.0;
for(int j=0;j