kaggle を参考にしたデータ分析入門 

機械学習関連の学習者の間でKaggleが話題になっていますね。

「Kaggleとはいったい何なのか?」「Kaggleはどのように学習に役立つか?」あたりを中心に

実際にKaggleを触ってみた結果を。入門者目線で紹介します。

 

1.Kaggleとは

Kaggleとは、「Kaggle is the place to do data science projects」とのこと。

Kaggleではデータ分析のコンペが掲載されています。

<コンペ例>

・住宅の敷地面積や設備に関するデータから、住宅の価格を推定する精度を競う

・画像から特定の対象物を特定する素早さを規則  等々

 

Kaggleではデータ分析の有識者のコードが公開されているので、
実践的なデータ分析問題に対して、上級者がどのようにアプローチをしているのか、が学習できます。
初心者としては大量の実践演習とお手本に触れることができるのでかなり勉強になるはずです。

なお、コンペによっては、賞金の出るものもありますので、実力のある方はお小遣い稼ぎもできてしまいます。

※注意:Kaggle上では様々な説明が英語で書いてあることが多いです。

2.Kaggleでデータ分析に挑戦

上述の通り、Kaggleはデータ分析の学習に適していそう、ということがわかりましたので、早速挑戦してみました。

KaggleのWEBサイトからユーザ登録し、”Competitions”から適当なテーマを選んでコンペに挑戦します。(Kaggle WEBサイトはこちら

 

<挑戦テーマ>
難易度や計算負荷等を考慮して、今回は「住宅の値段推定」に挑戦。

 

<問題概要>

・住宅に関する様々なデータ(敷地面積、各階の面積、プールや暖炉のクオリティ等々)と、対応する住宅の価格がサンプルデータとして提供されている。(訓練データ)

・但し、一部のデータについては、住宅の価格が空欄となっている。(テストデータ)

・訓練データを用いて、テストデータの住宅の価格を推定し、その精度を競う。(回帰問題の推定精度が高いほどスコアが上がる)

 

3.上級者のコードを参考に実践的なデータ分析の流れを学習

初心者がいきなり「住宅の値段推定」に着手しようとしても、アプローチすら想像が困難でした。。。

そこで、参考として、こちらのカーネル(上級者のお手本コードのこと)を元にデータ分析を行ってみました。

(カーネルで行われているデータ分析の流れは以下の通り。おそらく他の問題にも適用可能なアプローチかと思いますので、参考までに紹介します)

 

①データの確認

まずは、提供されているデータの確認をしていました。

実際に確認をしてみると、データが空欄になっている箇所(欠損値)や、

多くのデータの傾向から逸脱しているデータ(外れ値)があり、

このままではデータ分析の精度に影響が出る可能性があることがわかりました。

 

②データの前処理

①でデータに問題がありそうなことがわかりましたので、

空欄になっている箇所に仮のデータを入力して補完したり、

あまりにも傾向から逸脱しているデータを除外したりしてデータを綺麗にしていきます。

 

③推定モデルの構築

世の中には先人が考案した様々な機械学習の手法が存在しますので、

いくらかの方法を今回の問題に適用して、住宅の価格を推定するモデルを構築してみます。

 

④モデルの改良

とはいえ、汎用的なモデルを今回の問題に適用しただけでは、十分な精度は出ないようです。

そこで、複数のモデルを組み合わせてみたり(アンサンブル学習)、

今回の問題に適用するとよいと思われる難しい手法を編み出したりして、

モデルの改良を進めました。

 

⑤モデルの完成

完成したモデルを使って、未知の家の値段を推定した結果、358位/4465位となりました!

 

4.まとめ

機械学習初心者でも、上級者のコードを参考にすることで、上位10%に食い込むことができました。

Kaggleは機械学習の問題の解き方が全然分からない初心者が、上級者の知見を学ぶことができる点で非常に優れた学習方法だと思います。

これから機械学習を始めてみたい方、Kaggleを入門書代わりに使ってみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です