
・とりあえず欠損値処理と簡単なコードを書いてsubmitしてみたけど、この後どう勉強を進めていけばいいんだろう
こんな悩みを持つ方は多いのではないでしょうか。私も同じでした。
本記事をお読みいただくと、下記が分かります。
ポイント
・初心者がKaggleを進める上でお勧めの本が分かる
・お勧め本の有効な使い方が分かる
■筆者の紹介
私はおよそ1年前からKaggleに取り組み始め、Kaggleだけでなく他のコンペにも定期的に参加しています。
当時はKaggle専用の書籍はほぼなく、手探りで勉強を勧めていました。
そのとき、このような気持ちを強く持っていました。
KaggleのKernelを見てもさっぱりわからない・・
Kernelを見て勉強しろって言うけど、全部難しい。どれから勉強していけばいいのか見当もつかない
そんなさなかに今回お勧めする書籍が発売され始めましたので、正直、
「きたあああああ!!」と思い、テンションがかなり
上がったことを覚えています(笑)。
本記事では去年の自分に向けて、「お勧めしたいKaggle本と、効果的な使い方」をテーマに書いているので、
是非、Kaggleを始めたばかりで途方に暮れている方に読んでいただきたいです。
【後日追記】
また、この記事を投稿してから、なんとこの記事で紹介している著者の方から下記のツイートを頂きました・・!!!!
この記事を読んでくださったことにすごく驚きましたが、著者ご本人からもこのように仰っていただけているので、
本記事で紹介している内容の信憑性も高いと感じています。
https://twitter.com/upura0/status/1314394460877254658
本記事の目次は以下の通りです。
①Kaggleの初心者へのお勧め本・あまりお勧めしない本
■お勧め本
1冊目:実践Data Scienceシリーズ PythonではじめるKaggleスタートブック
いや、これ、めちゃくちゃ王道の本2冊じゃないか!
と思われた方が多いと思います、すみません。
私がここで主張したいのは、上記の2冊はKaggleを進めていく上で非常に有用なので、
むしろ超初心者のタイミングでは一旦この2冊だけでいいと思う、ということです。
「Kaggle 本」等で検索すると、大量の本をお勧めしているサイトが結構出てきますし、
割と専門的な本を紹介しているサイトも多いです。
実際、専門書は後々絶対に必要になってくるのですが、意気込んで

と購入するも、

となり、挫折のループにはまりやすいです。
Twitterで度々発信しているのですが、初心者のうちは「何よりも継続すること・やめないこと」を最優先にすべきです。
その意味で、最初から意気込んで専門書を買うのは避けましょう。
試しに買ってみるのは全然いいと思いますが、「わからなくて当たり前」くらいの気持ちでいると良いです。
落ち込みすぎないようにしましょう。
■初心者にあまりお勧めしない本
「機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践」
本自体は素晴らしいと思います、あくまで「初心者にはお勧めしない本」という文脈です。
昨年、titanic→Housepriceのコンペを進めていた私は、特徴量エンジニアリングを勉強してみたいと思い、購入しました。
ただ、「勉強を始めたばかりの初心者にはやや難しかった」「初心者の自分がコンペにダイレクトに生かせそうな内容が思いのほか少なかった」と感じます。
内容もテキスト解析や画像処理を扱っている部分も多く、
まだこの分野に馴染みがない初心者の方は、お勧め本の2冊目の「Kaggleで勝つデータ分析の技術」で一旦は十分かと思います。
※もちろん、この本を否定する内容では全くないので、興味がある方は是非手に取ってみてください!
②お勧め本の有効な使い方
結論はこちらです。
step
1実践Data Scienceシリーズ PythonではじめるKaggleスタートブック
一通り読んで、全体像を掴む
step
2Kaggleで勝つデータ分析の技術
「目次」をざっと見て、機械学習にどんな項目があるのかを掴む
※この時、1ページ目から最後まで丁寧に読んで勉強しよう、とは決して思わないこと
step
3コンペへの参加
1コンペにつき最低1つテーマを自分の中で決め、上記2冊とGoogle検索を駆使しながら実践していく
※この時、欲張って色々なテーマに手を出しすぎないこと
具体的に説明していきます。
STEP1
「実践Data Scienceシリーズ PythonではじめるKaggleスタートブック」は
Kaggleの全体像を捉えるのに、分量も内容も丁度良いと感じます。
私がKaggleに取り組み始めた頃はこの本は発売されていなかったので、発売されたときは
「そうそう、こういうのが欲しかったんだよね!」
と思ったことを覚えています。
ですので、この本は内容を一通りしっかり読んで、全体像をまずは掴みましょう。
※前半の、submitしてみる等の章は、やったことがある方は飛ばして問題ありません。
余談ですが、この本は対談形式のコラムが非常に参考になります。トップKagglerの方がどんなことを考えてコンペに臨まれているのか知れて、実は私はこの本ではコラムが一番好きです(笑)
STEP2
STEP1の本は「はじめの一歩」としては非常に有効ですが、
具体的に機械学習(Kaggle)での手法の全体像を知る、という観点では情報がやや少ないです。
ですので、次に「Kaggleで勝つデータ分析の技術」に進みます。
ここで注意点は、この本は非常にボリュームがあります。

こんなこと、絶対考えないでください。大半の方が(もちろん自分も)、冒頭くらいで挫折します。
STEP2で大切なのは、「機械学習コンペの手法はざっくりどのような項目があるのか」を知ることです。
その意味で、目次を確認→おおよそどのような内容があるのかを把握しましょう。
STEP3
STEP2の中から、挑戦してみたい項目をピックアップします。
私の場合は、以下のようなことを実際に考えました。

・今まで基本的な決定木やランダムフォレストしか使ったことがない。本で紹介されているxgboostやLGBMを使ってみたいな。
・アンサンブルって、言葉だけ聞いたことがある。せっかくいくつかモデルを作れるようになってきたから、挑戦してみよう。
そしてこのピックアップしたテーマについて、1コンペ最低1テーマと決め、実際に2冊を見ながら、そしてGoogle検索を駆使しながらコンペで使ってみましょう!
注意点としては、1つのコンペであれもこれもやろうとしないことです。
理由は下記です。
■1点目:本の通りにすんなり実装できるケースばかりではないから
■2点目:「とにかく試す」ことだけに時間を奪われ、じっくり考える機会を失うから
私がまさにこのタイプで、やってみたいことを1つのコンペに全部詰め込もうとしました。
■1点目について
ところが、「本を片手に」とは言っても、現実はそのコンペ特有のデータの型があったりして、
本の通りに実行してすんなり実装できるケースばかりではありません。
そんな時は都度ぐぐったりして、エラーの解消にかなり時間を奪われ、とても全部を試せる状態ではなくなってしまいました。
■2点目について
また、それでも「頑張ろう」と意気込む姿勢は本当に素晴らしいですが、この時に「とにかく試す(実装する)」ことばかりを目的にすると、当然時間がかなり奪われます。
本来は、「この前処理をした時としていない時の精度はどちらがいいのか、両方試してみよう」という風に
試行錯誤しながらコンペに取り組むのが理想
だと思いますが、こういった試行錯誤の時間がなくなり、
「とにかくエラーなく動かすこと」が目的になってしまいます。
これ自体が必ずしも悪いわけではないのですが、
かけた時間の割に、「何を学んだのかよくわからないコンペ」になってしまう可能性が大きいです。
以上、1点目・2点目のように、
初期の段階で「あれもこれもやろう」と意気込むと、
「結局できなかった」という負のイメージが強く残り挫折しやすくなります。
目標を高く掲げることは重要ですが、「全部はできないかもな」くらいに構えておくのがちょうどいいと思います。
ちなみに、「これらを試すコンペをどう探したらいいかわからない」という方は、下記の記事を参考にして下さい。
こちらもCHECK
-
-
Kaggle titanicの次に取り組むコンペの探し方
機械学習を少し勉強して、「Kaggleのtitanicコンペ」には一旦submitしてみた。 さて、次は何をすればいいんだろうか・・・まだ全然機械学習のことわからないな・・・。 こう思っている方は多い ...
続きを見る
③まとめ
以上、いかがでしたでしょうか。
最近はKaggle向けの本も充実してきましたが、昨年まではこういった本はなく、
「全体像がわからない」というもやもやを抱えたまま勉強を進めていました。
是非この記事を参考にして頂き、楽しいKaggleライフをお楽しみください!