2016.07.07

データサイエンティスト養成講座 第4回受講レポート

データサイエンティスト養成講座の第4回目が6月22日に開催されました。5月から始まり、全8回の養成講座も今回でようやく半分。これまでの講義で力をつけてきた受講者たちは、演習で利用しているDeepAnalytics(運営:株式会社オプトホールディングDataScienceLab)のコンテストでも良い成績をおさめるようになってきています。そこで、今回はコンテストで上位の受講者に、モデル作成のコツや工夫した点を伺いました。

養成講座の様子

「ステップワイズ法で1つずつモデルを出し、最もAICが低い対象のモデルを採用した」、「ロジスティック回帰で全部の変数を入れてみるとAUCが0.9くらいになり、そこから色々と変数を変えて試してみた」 、「一度ランダムフォレストで決定木を作り、どの変数が効いているのかを確認した。100通り程試してその中で数値が下がるものを抜いていった。」など、みなさん様々な工夫をされてきたようです。丁寧にモデルを作っていくとそれだけ精度も上がっていくので、途中であきらめずに職人のようにコツコツとモデル作りを積み重ねていくことが大事なんですね。

講座の様子

さて、今回のテーマは「アンサンブル(集団学習)」です。異なったモデルを組み合わせ、得意なところと弱点を補いあって合成することによって精度が上がります。アンサンブルには“平均”、“モデル再構築”、“バギング”、“ブースティング”などの手法があります。

平均
複数のモデルの予測結果に対して平均をとり、予測精度の悪い部分を他のモデルで補うことができます。個数や確率を返すような予測には平均、猫か犬を判断するような0/1の予測には多数決をとります。平均はGBM、xgboostのようなランダム性のある局所最適に陥りやすいモデルにも有効で、データ分析のコンペティションKaggleでもよく使われるそうです。

モデル再構築
複数のモデルの予測結果を新しい変数とみなし、学習データとしてモデルを再構築します。ロジスティック回帰でよく用いられ、平均と違い重みづけをしてくれる点が優れています。また、ロジスティック回帰ではなく決定木でもよく、ここからは工夫しだいで精度が上がります。

バギング
バギングとは以下のアルゴリズムによる集団学習です。
1.N行の学習データから復元抽出でM行の学習データを取り出す
2.この学習データに対してモデルを構築する
3.1、2をL回繰り返してL個のモデルを構築する
4.出力が回帰、分類確率の場合は平均、判別の場合は多数決による集団学習を行い、新しい予測結果を作成する
バギングはipredというRのパッケージを使用すると便利です。

ブースティング
複数のモデルを順番に学習していき、正答率に関連して予測対象ごとに重みづけを行い。モデルを学習するごとに重みを更新していく手法です。特にアダブースト(Adaboost)、勾配ブースティング(Gradient Boosting)という手法が有名で、コンペでもよく使われています。

演習ではチームメンバー同士で作成したモデルを持ち寄って、平均・モデル再構築・バギングなどのアンサンブルを行いました。各チーム、どれくらい精度が向上したのでしょうか!?

次回からは新しく追加されたコンテスト「Jリーグ観客動員数を予測せよ!【練習問題】」の分析が始まります。お楽しみに!

【おまけ】
養成講座の懇親会が品川プリンスホテルの中華料理店で開催され、多くの受講者や講師が参加しました。いつも真剣にデータサイエンスを学んでいる受講者の皆さんも、この日は円卓を囲んで美味しい中華料理とお酒をいただきながら親睦を深めることができたようです。いよいよ次回からは後半。グループワークも増えて、ますます盛り上がってきそうですね!

懇親会の様子

第5回の受講レポートはこちら

カテゴリ
アーカイブ
記事アクセスランキング
タグ