関連記事

手軽にデータ分析ができるdablを使ってみた

【kaggle】TabNetの使い方




kaggleについて、これから始めたい人や登録したがコンペになかなか参加できない人に向けて、kaggleとは何か、コンペに参加したら何をするかを紹介したいと思います。
kaggleとは、分析コンペが開かれるプラットフォームになります。

世界中のデータサイエンティストが、いろんな分野の企業などから提供されたデータを使って機械学習モデルを作成し、その予測結果をコンペ形式で競い合う場になります。上位入賞者には賞金が出るコンペもあります。
また、競い合うだけでなく、GPUの使える実行環境やコンペ参加者同士でどう分析したらいいかなど議論し合う場も用意されており知識の共有もできます。
基本的なコンペの種類は以下の4つになります。
他には、あまり見かけませんが以下のような種類のコンペもあります。
初めはタイタニックや住宅価格の予測などGetting Startedのコンペに参加してみるのがいいかと思います。
Titanic - Machine Learning from Disaster
Start here! Predict survival on the Titanic and get familiar with ML basics
House Prices - Advanced Regression Techniques
Predict sales prices and practice feature engineering, RFs, and gradient boosting
コンペの種類とは別にコンペの形式もいくつかあります。
最近はCode Competitionが多くなり、kaggleの実行環境で完結できるようになりました。また、シミュレーションコンペは予測結果を競うコンペよりさらにゲーム性のあるおもしろいコンペになっているかと思います。
扱うデータはさまざまです。
主なデータは以下になります。

テストデータを予測した結果で順位が決まります。
リーダ-ボードはふたつあります。PublicリーダーボードとPrivateリーダーボードです。
コンペ中はPublicリーダーボードで順位が表示され、最終的な順位はPrivateリーダーボードで決定されます。
予測するテストデータはPublicリーダーボード用とPrivateリーダーボード用に分かれています。

Publicリーダーボードの順位だけを見ているとそのデータに過学習している可能性があるため注意が必要です。
kaggleにはNotebookという実行環境が用意されています。
メニュー上では「Code」、ドキュメント上では「Notebook」と記載されていますが、ドキュメントのNotebookに合わせてます。 以前は「Kernel」と呼ばれてました。

コンペではこの環境を利用して機械学習モデルを学習することができ、GPUでの実行もできます。
Notebookにはスクリプトファイルを実行するようなScript形式とJupyter notebookのNotebook形式があります。
「Notebook」の形式として「Notebook」(Jupyter notebook)があるということになります。 ドキュメントにそのように記載されていましたが、少し混乱するかと思いました。
Notebookは非公開でも実行できますが、公開することもできます。 公開されたNotebookは投票することもでき、人気のNotebookはどのコンペでも参考になります。
また、Discussionsという機能もあり、コンペ参加者同士でコンペ内容について議論することができます。

これらの機能を活用することで、先人たちの知恵を借りながら分析コンペに参加することができますし、大変勉強になります。
kaggleに登録してない場合は、まず登録します。

コンペ内容や形式、データ、期間などから参加するコンペを決めます。

初めて参加するならGetting Startedのコンペがおすすめです。具体的にはタイタニックや住宅価格の予測がいいと思います。
Titanic - Machine Learning from Disaster
Start here! Predict survival on the Titanic and get familiar with ML basics
House Prices - Advanced Regression Techniques
Predict sales prices and practice feature engineering, RFs, and gradient boosting
また、シミュレーションコンペもゲーム性があって楽しいです。
Connect X
Connect your checkers in a row before your opponent!
コンペのルールを読んで、コンペに参加します。

どんなデータを利用して、何を予測するのか、どんな方法で評価するのかを確認します。
大抵のコンペではEDA(探索的データ解析)をしているNotebookを公開しているので、それをフォークして実践してみます。これを通して、データの特徴などを簡単に理解します。

EDAのNotebook同様、ある程度スコアが出るモデルやベースラインとなるモデルのNotebookも大抵公開されています。
データの特徴をある程度理解できたら予測結果を出力する人気のNotebookをフォークして実行してみます。
予測結果が出力されたら提出してみます。

ここまでは先人の方がやったことをそのまま実行しただけなので、あとは自分で色々試してみます。
などなど...
最後の大切なのがコンペが終わったら振り返りをすることです。(自分も疎かにしがちですが)また、コンペ終了後は上位の方が解法を公開してくれるので参考になります。
コンペ中のテクニックに関しては下記の書籍が参考になります。