LoginSignup
3
2

More than 1 year has passed since last update.

化石がマイナスからKaggleを始めてみる

Posted at

前提

アンモナイトはながらく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)
image.png
冒頭の「本書の対象読者」で挙げられた中に「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との連携について、全く触れられてないよ……?

ここまで長文にお付き合いいただき、ありがとうございました!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2