前提
アンモナイトはながらくWFで社畜として働いてきたが、ある日、アジャイルに目覚め、
自分が「化石エンジニア」、つまり「エンジニアレベル=Lv3」くらいになってると気づく。
たぶん、いま太古の海中にいる。せめて肺呼吸ができるようになりたい。
人類へ進化するため、Pythonを使ってKaggleに挑戦することにした。
1:Kaggleとは
実は、自分の技術力の低さに驚愕し、最近、週末はPythonを少し触っていた。
Pythonの使い方を調べてて、「Kaggle」があると知った。
Kaggleは誰かが出したお題の解法を考えるサイト。
コンペティション形式でお題が出され、優れた解法は採用され、「賞金」をゲットできる。(超浅い理解)
面白そうなことができて、勉強もできて、賞金も出る?!
やるしかない。(3秒の結論)
2:マイナスからのスタート
アンモナイトのスペック:
・数学レベル:「移動する点P」で考えるのが面倒くさくなり、その時点で永眠
・技術レベル:Pythonを少々
・Kaggleの知識:オモシロ&賞金しか知らない
・統計や機械学習の知識:ゼロ
よく「ゼロから始める~」があるが、そもそも数学も技術も統計も思考もないアンモナイトの現在地は「陸上」ではなく、「海面下(海抜ゼロよりもさらに下)」である。
つまり、「ゼロから始めるKaggle」ではなく、
「思考するのが面倒くさい化石がマイナスから始める」Kaggleだ。
これは自分だけではどうにもならないと判断、
密林で『PythonではじめるKaggleスタートブック』を購入した。
(https://www.amazon.co.jp/dp/4065190061)
冒頭の「本書の対象読者」で挙げられた中に「Kaggleに興味はあるが、どこから手をつけて良いか困っている方」があった。
うん、アンモナイトは対象読者だな。間違いない。
この本通りにやれば、Kaggle参加→技術力のレベルUp可能では?
3:環境準備
『PythonではじめるKaggleスタートブック』は初心者・アンモナイトには良書だった。
ちゃんと「Kaggleとは」が詳しく説明されている(メダルとか称号とか)。
サンプルコードも記載されている。
Kaggle以外のコンペサイトも記載があった。
必要なもの:
・GitHub (→後でDocker選択時にいる? らしいと判明)
・Docker(PythonのKaggle向け分析環境) (→後で「選択肢の一つ」と判明)
早くも知らない単語が出てきた。GitHubはなんとかなりそうだけど、
Dockerってなに?(←化石の問いはこのレベルから始まる)
Google先生に教えてもらう。
「Dockerは、コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンプラットフォームである。
Dockerはコンテナ仮想化を用いたOSレベルの仮想化によりアプリケーションを開発・実行環境から隔離し、
アプリケーションの素早い提供を可能にする。」(By Wikipedia)
プラットフォームってのはわかるけど、コンテナってなに?(←化石の問い)
再びGoogle先生に教えてもらう。
「コンピュータプログラミングにおいて、コンテナとはオブジェクトの集まりを表現するデータ構造、抽象データ型またはクラスの総称である。
コレクションとも言う。コンテナには複数の種類があり、それぞれ独自の方法でオブジェクトを組織的に格納する。」(By Wikipedia)
コレクションのことか。
でもさっき、Dockerの説明で「OSレベルの仮想化」って出てたけど、
「コンテナはOSレベル仮想化を省くから動きやすくなる」んでしょ?
なんか矛盾があるような…。Dockerの上にコンテナがある? うん、わからない。
やってみるしかない。(3秒の結論)
4:環境構築
GitHubとDockerとKaggleがないことには始まらない(らしい)のでアカウントを作る。
GitHubのアカウントを作る。アカウントネームの名づけで失敗する。もう変更できない。
Kaggleのアカウントを作る。アカウントネームの名づけで失敗する。もう変更できない。
Kaggleのアカウントネームについてはちゃんと『PythonではじめるKaggleスタートブック』に注意書きがある。
よい子のみんなはこの本のアドバイス通りに作れば問題ない。
Dockerはまだ本に出てこないので、あとでいいのかな。
5:すでに始まっていた
ここで想定外の事態が2つ発生。
1:Kaggleのサイトは全文英語表記→どっかで変えられる?
2:気づいたら、最初のチュートリアルコンペ「タイタニック号-災害からの機械学習」(適当な英訳)に参加済
どうやって参加したんだ? どこを間違えたのかわからない。
とりあえず過去のことはもうどうしようもないので(例:アカウントネーム)、本の説明を読む。
サイトのページのタブと本のタブの説明が一致してない。
「タイタニック号~」はチュートリアルだからか?
それともレイアウトが変わった?
わからないので、次へ進む。
6:Notebookを作る
Dockerってどうやって入れんの? 本に出てこないけど、と疑問を感じつつ、本の通りにNotebookタブを探し、Notebookタブがないことを発見する。
「Codeタブじゃね?」と安易にクリック。
すぐにNotebook画面に切り替わる。すでに言語はPythonが選択されている。
話が早いからまぁいいかと思いつつも、Dockerって……という疑問は残る。
7:NotebookとDocker
本を読み進んだら、謎が解けた。
Notebookはもうクラウドに構築済・すぐに使用できる環境。
Dockerは自PCで自分で環境構築の際に、使用する。
こんなん知ってる人からしたら猛烈なツッコミが来ると思うが、
なにせこちとら古代生物である。マジです。マジでやってます。(すでに3時間が経過)
8:今後の予感
こんな感じで『PythonではじめるKaggleスタートブック』の第一章が終わる。
今後、「タイタニック号-災害からの機械学習」(適当な英訳)に挑戦する予定。
そしていま気づく。
「もしかして、Notebook使用するなら、GitHubいらないのでは……?」
だってGitHubとの連携について、全く触れられてないよ……?
ここまで長文にお付き合いいただき、ありがとうございました!