
機械学習初心者がKaggleの「入門」を高速で終えるための、おすすめ資料などまとめ(2020年8月版)
こんにちは、@currypurinです。Kaggleマスターです。
同じタイトルの記事を、3月にも書きましたが、それから「データサイエンス100本ノック(構造化データ加工編)」が公開されたり、GrandMasterのAbhishekさんが書かれた、「Approaching (Almost) Any Machine Learning Problem」が公開されたりと、これまで紹介してきた資料などよりもおすすめできる資料が増えています。
そこで、機械学習・Kaggleの初心者がKaggleをはじめるにあたり、こうやったら、早く「脱入門」できるというコースの現時点版をまとめてみました。
Kaggleは脱入門してからが、とても面白いし、そこからはどっぷりとハマって金メダルを目指したり、上位の解法だけ知って自分のタスクに利用したりと色々な使い方ができます。この記事を読んで高速で脱入門できる方が増えるとよいと思います。
1.Kaggleに入門(はじめに取り組むと良い資料)
Kaggleには、「タイタニックコンペ」という、練習用のコンペがあります。
これは、タイタニックの乗客のデータから、乗客の生死を予測するという、やりたいことが分かりやすいコンペであり、Kaggleに初めて挑戦する方におすすめのコンペとなっています。
まずは、このタイタニックコンペで、Kaggleのサイトの使い方など、多くのコンペに共通する仕様に慣れると良いと思います。
ついては次の本を読みながら、タイタニックコンペに取り組むと良いでしょう。
PythonではじめるKaggleスタートブック
この本は、私がKaggleマスターのu++さんと共著で執筆した本です。
この本では、まずタイタニックコンペを、サンプルコードを動かしながら取り組みます。
次に、開催中のコンペに取り組むにあたり知っておいた方が良い、複数テーブルの扱い方や、画像データ・テキストデータの扱い方についての簡単な解説や、参加するコンペの選び方、初心者おすすめの戦い方を紹介します。
節ごとの著者の対談ではkagglerの生の声をお伝えし、また付録では、サンプルコードの詳細な説明をしています。
詳しくは、u++さんのブログ記事や、出版社の公式ページが詳しです。
また、サポートサイトでは、サンプルコードや本書の脚注のリストを公開しています。
この脚注のリストは、多くのとても素晴らしいKaggle関連の情報のリンク集となっています。本では書ききれな方ことも是非参照ください。
2.開催中のコンペに取り組む
1.の本でコンペの全体像などをつかむことができたら、開催中のコンペに取り組みましょう。
コンペの選び方についても、1.の本で説明を行っています。
なお、次の記事では開催中のコンペに取り組んでメダルを獲得するための、考え方を書いていますので参考になると思います。
・KaggleでSilver取るためにどういう段階を踏んでいけばよいですか?
・この本を読んで機械学習を学び、Kaggleの金メダルをとりました
またu++さんが公開されている
「おすすめコンペは何?」の答え方を真面目に考える / How to Choose Kaggle Competitions と そのYoutubeでの解説動画 もコンペを選ぶのにとても参考になると思います。
コンペに取り組むも、難しい場合
コンペに取り組むも、英語、Python、機械学習など、どれも新しいチャレンジで難しいという場合があると思います。
その場合は、次のコンテンツなど、自分が取り組みやすいものや必要だと思うものに取り組むと良いと思います。
Kaggle Courses
Kaggle Coursesは、Kaggleのサイト上にある、コンテンツです。
Python、Intro to Machine Learning、Pandas、Data Visualizationなどのコースがあり、どれも良いコンテンツで、勉強になると思います。
英語なので難しく見えますが、説明のページで学んで、その後にいくつかの問題があってそれに正解すると、完了という流れは共通ですし、わからなくてもsolution()メソッドで答えをみることもできるので、挑戦してみると意外とできるし、Kaggleは英語を読む機会が多いので英語の表現を学んでおくのも良いと思います。
データサイエンス100本ノック(構造化データ加工編)
Pandasについて、日本語のコンテンツの場合が良いという場合は、この100本ノックが良いと思います。
これは、Pandasの処理での問が100個あり、その問題を解くことにより通常Pandasで行う処理ができるというものになります。(SQLやRでの回答例もあります)
100個あるから時間もかかり、大変ですがKaggleでテーブルデータを扱う時にPandasで行う多くの処理ができるようになるので、Pandasに慣れていない場合は、これに取り組むと良いでしょう。
Approaching (Almost) Any Machine Learning Problem
コンペに取り組んでみて、何をしたら良いかわからないという場合はこの本を読むのも良いと思います。
分析環境やフォルダ構成という細かいところも含みつつ、テーブル・画像・テキストデータについても説明、Validationや評価指標もカバーしているというすごい本です。
英語で書かれているので、全ての方にはおすすめできないかもしれないですが、Pythonのコードの分量も多く、英語が苦手な私でも読みやすかったので全然読めるし読むべき本だと思います。
Kaggleに挑戦してメダルを獲得した方の体験談を読む
初心者の方がどのように挑戦したかがわかる、体験談を探して読むのも良いと思います。例えば次のブログなどがあります。(検索すると、他にも多くの記事があります)
・<実践>はじめてのKaggle体験記
・Kaggle参戦記 〜入門からExpert獲得までの半年間の記録 & お役立ち資料まとめ〜
3.コンペに取り組みながら、必要なことを深く学ぶ
コンペに取り組むと、知らないことや、理解の浅いことなどに、たくさん気付きます。
コンペに取り組みながらに少しずつ学ぶと良いでしょう。
コンペに取り組んでは学び、学んではコンペで試すの繰り返しです。
学ぶ際は、2019年10月に発売され、ベストセラーとなったKaggleで勝つデータ分析の技術という、バイブルのような本があるので、まずはこの本にあたり、理解していくと良いと思います。
この本には、Kaggleに取り組む上で必要なことが網羅的に書かれていますし、参考文献などもたくさん網羅的に書かれているので、この本を信じて学ぶと良いでしょう。
なお、機械学習について、網羅的な(少なくても広く浅い)知識をえることは、kaggleで良い成績を残すためには、どこかの段階で必要だと思います。
その場合は、「この本を読んで機械学習を学び、Kaggleの金メダルをとりました」で書いた本が候補となると思います。
まとめ
この記事では、「Kaggleの入門」を高速で終えるための資料などをまとめました。
この記事に沿って、手を動かしながら学ぶことで、入門を終え、Kagglerになることができると思います。
参考:Kaggleのチュートリアルなどの解説動画
KaggleのNotebookの使い方をYoutubeで解説しています。
私が以前に執筆した「Kaggleのチュートリアル第4版」という同人誌では、解説動画を公開しています。(一部の動画は作成中)
動画の一覧は、サポートサイトにあります。
参考:英語について
Kaggleに取り組むにあたり、英語の壁はそんなになくなりました。
DeepLという翻訳サイトが凄すぎるので、これを使えば英語から日本語も、日本語から英語もほぼ問題なく翻訳されます。