読者です 読者をやめる 読者になる 読者になる

第1回データサイエンス・カップの補足

前回の説明で足りないと思われる部分の補足です。

(1) 欠損値の取り扱いについて

 欠損値を含む項目がある場合に、その項目の値がすべて欠損しているのか、それとも部分的に欠損しているのかがまず確認したいところです。今回のデータサイエンス・カップでは、気温の項目はトレーニングデータではすべてあるものの、テストデータではすべて欠損していました。

 そこでトレーニングデータにおいて、RandomForest などで変数重要度を求めてみたところ気温の項目が重要であったので、テストデータにおいても欠損値を補完することを考えました。

 自分の場合は結果的にブースティングで変数重要度を求めて、サポートベクトル回帰をしましたが、時系列解析の方が普通かもしれません。(今後の課題として考えます)

 

(2) 解答用データにおける罠

 IDの項目が、既存のデータとこれから予測すべきデータとで大きくかけ離れているため、IDを含めてモデルの推定を行うと実際のデータと照らし合わせたときに、ひどくずれそうだなと直感的に思えたので、IDの項目を入れないようにしました。 実際のところIDを含めて予測した場合には、たとえば3月の気温が地域によらず、10℃以下のところが多かったり、気温が低い方が観客数が多かったりしていました。

 ただし、ID に関しては意味のある振り分けをなされている場合もあり、そのようなときにはIDを含めた方が良いかもしれません。たとえば年月日(20140331) のようなときです。

---

以下、おまけです。

(3) サポートベクトルマシンのパラメータ調整については、このあたりの記事を参考にしていました。

SVM のチューニングのしかた(2) - ほくそ笑む

Rで機械学習するならチューニングもグリッドサーチ関数orオプションでお手軽に - 銀座で働くデータサイエンティストのブログ

---

これは、実際にはやっていなかったことですが、参考になりそうでしたので、付け加えておきました。

交差検定の値の設定について:

交差検定の k の値はどれくらいにすればいいのか - ほくそ笑む

交差検定の値 k を

k = 1 + log(n)/log(2) (log は自然対数)

としてみるのはどうかという提案です。何も考えずデフォルトの値(10)を使うより良さそうです。