Kaggleを活用したデータ分析入門

最近のAIブームが盛り上がる中、「Kaggle」という単語がよく聞こえてくるようになりました。

ので、初心者が、初心者にわかりやすいようにKaggleの概要と利点をまとめてみました。

 

1.Kaggleとは

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

Kaggleとは、「Kaggle is the place to do data science projects」らしいです。(Kaggle WEBサイトより

と、言われても具体的に何のことかイメージしづらいかと思いますので端的にKaggleを説明すると

「データ分析のコンペサイト」と認識いただければそんなには間違っていないかと思います。

 

<コンペ例>

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

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

※賞金ありのコンペから、賞金なしの学習向けと思われるコンペまで、様々なテーマがあります

 

Kaggleではデータ分析の有識者のコードが公開されている

さて、Kaggleが人気の理由としては、「有識者のコードが公開されていること」にあるのでは、と個人的には思っています。

コンペであるにも関わらず、有識者が各テーマに対してコードを公開してくれているので、

実践的なデータ分析問題に対して、上級者がどのようにアプローチをしているのか、が学習できてしまいます。

初心者としては大量の実践演習とお手本に触れることができるのでかなり勉強になるはずです。

 

2.初心者がKaggleでデータ分析概要を学んでみた

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

KaggleのWEBサイトからユーザ登録し、”Competitions”から適当なテーマを選んで学習をしてみました(Kaggle WEBサイトはこちら

 

挑戦テーマ

難易度や計算負荷等を考慮して、今回は「住宅の値段推定」に取り組むことにしました。

<問題概要>

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

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

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

 

分析アプローチ

どのようにアプローチしたらよいか、目途がついていない思考停止初心者は、

まずは上級者のサンプルコードを適当に漁って、分析アプローチを勉強することにしました。

以下が、とある上級者がやっているデータ分析の流れです。

(上級者のコードの著作権の扱いがよくわからないので、抽象度高めの記載としています。)

 

①データの確認

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

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

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

このままではデータ分析の精度に影響が出るかもしれないことがわかりました。

 

②データの前処理

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

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

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

 

③推定モデルの構築

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

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

 

④モデルの改良

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

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

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

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

 

3.所感

〇:上級者のコードが公開されているので勉強になる

初心者としてはいきなり実践問題に取り組もうと思っても、何から手を付けて良いかわからない状態になりがちです。

上級者のコードをお手本にして学習を進めることにより、訳が分からないまま無駄な試行錯誤をする工程が省略できるので、

効率的に学習ができると感じました。

 

〇:問題がデータと共に用意されているので実践演習になる

データ分析の練習をしようと思ったときに、意外に困るのは良質な問題が少ないことではないでしょうか。

(比較的整ったデータセットを用いた演習問題は参考書とかに載っていますが、データが綺麗過ぎるので実問題の演習には適さないこともあるかと)

その点、Kaggleはある程度実問題に近いデータが十分な数量提供されているので、実問題の演習として適していると考えます。

 

△:英語でそれなりに難しいことが書かれているので完全な初心者は厳しいかも

筆者はデータ分析の初心者ではありますが、一応基本的な機械学習の知識は事前に知ってはいましたので、何とか上級者のコードを読むことができました。

しかしながら完全に初心者の場合、上級者のコードの説明書きを見てもそれなりに難しいことが英語で書かれているため、

訳が分からなくなる可能性もあるかも、と思いました。

完全な初心者の方は、機械学習やデータ分析の入門書を1冊読んだ上で、(+英語もある程度読めるように練習した上で)Kaggleに取り組むと、

より効率がよく勉強できるのではないでしょうか

 

△:上級者が何を根拠に判断をしているかまではわからないことも多い

上級者は独自の知見に基づいて、見事なデータ分析をすることがあります。

…が、初心者からするとなぜ上級者がこのような分析をしているのかわからないことも多々…。

(例:外れ値を除外する際にどこまでを外れ値とするかの基準がわからない、データ分析手法が山のようにある中で、手法を選定する基準がわからない 等々)

Kaggle上で質問ができる「Discussion」という機能もあるようなので、どうしても気になる点は、勇気をもって質問する必要がありそうです(英語での記述が必要です)

4.まとめ

・Kaggleとは機械学習のコンペだと思ってもらえたらそんなに認識はズレないと思う

・データ分析の上級者のコードが公開されているので初心者としては勉強になる

・基礎的なデータ分析の知見を事前に学習しておくとよい

・質問する勇気と英語力があれば、上級者の勘・コツ・経験をさらに盗み取ることができるかも

コメントを残す

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