#前提
数学力・統計力・技術力がほぼすべて「ゼロより低い、マイナス」の化石エンジニア・アンモナイトが生き残りを目指して賞金が欲しくて、Kaggleに挑戦する。
たぶん、Kaggleに挑戦する記事の中で、もっともレベルが低いと思う。
#1:とりあえずタイタニック号
前回、Kaggleのアカウントを作成、Notebookを作り、チュートリアルコンペ「タイタニック号を救え!」(←内容が脳内で変わっている)に挑戦するところまできた。
で、これからどうすんの? タイタニック号を救うために機械学習で氷山壊すの?(※この人は本気です。正気ではないかもしれませんが)
サイトが全面英文だから、まったく進め方がわからない。
Go●gle先生か秘技De●pLをかませば内容が正確にわかるだろうが、ここは独力で行ってみよう。「冒険」だから。たぶん動画を見ろ、と表示されていると思う。その動画も英語なんだろうな、きっと。
こんなときのために! アンモナイトの背後には『PythonではじめるKaggleスタートブック』様が控えていらっしゃる。おもむろにページをめくる。「先生、お願いします」(←時代劇の悪役がやられるまえに言うセリフ)
『PythonではじめるKaggleスタートブック』
(https://www.amazon.co.jp/dp/4065190061)
あれ? 「タイタニック号」やる前に、Notebookの設定というか、テストをするっぽい。
そういえば作ったきり、Notebook見てなかった。
#2:とりあえずNotebook
Codeタブを押してみる。めっちゃ重い。あ、タブが「All」だからだ。他の挑戦者のNotebookも読みこんでる。
「Your Work」タブを押す。前回作成したNotebookが表示された。
大丈夫だろうか、アンモナイトが悠長にこんなことをしている間に、タイタニック号が沈んでしまうのでは? いま、船首でふたりがポーズ取ってるころだといいのだが……。
※これは「チュートリアル」の「仮想コンペ」です。
本とNotebookの表示が違うな……。「HDD」とか「CPU」の表示が見当たらない。
コード自体はnumpyとpandasを入れて、格納されているファイル名を表示するコードだな。よっしゃ、Run!
あれ? ファイル名が表示されるのがなんか遅い&表示された後もクルクルが動いてる。さっきはなかった「HDD」とか「CPU」は出てきたけど、これ、クルクルを止める動作が必要とか?
Q:「先生」、どうすればよいですか?
A:無言(特に記載はない)
あー…あるよね、こういうこと、人生で。マニュアル通りにいけるかと思いきや、なぜかマンホールの蓋が外れてて落ちるとか、そういう予想外の事故的な。あるあるな人生の縮図。
もう仕方がないから、クルクルはそのままにしておこう。NotebookのCPUが動いてるよ! ていうサインかもしれないし。いや、きっとそう。
ここでHelpを見たり、検索したりすればはっきりわかるだろうが、「冒険」なので、とりあえずそのまま突き進む。
つづいてコードを追加してみる。結果がどこに表示されるのかわからない。どこを見ればいいの?
適当にコンソールじゃね? とコンソールを開くといままでの実行結果が全部表示された。あー、これがイミディエイトウィンドウ的なやつか。ほほうほほう。アンモナイトの賢さが1つ上がった。
#3:急展開
久々に入れたコードが思い通りに動くのを見て嬉しくなっていたアンモナイトだったが、「先生」の第2章でいきなりマンホールに落ちる。
え、サンプルコードを拾ってくる? GitHubから?
いや無理だから。そんなこと、いきなりできないから。
(←Docker設定と関係なく、サンプルコードを取得するためにも、GitHubが必要なんだね!)
そもそも、GitHubのコードをどうやってNotebookに持ってくるの?(←「先生」はなんか説明してくれているが、GitHubとNotebookの関係がわからない)
えーっと、化石エンジニアが論理的に考える可能性としては、
1:Notebook側で何らかの作業をしてGitHubからインポートする
2:Notebookで「All」にして検索すると出てくる
3:GitHub側でNotebookへエクスポートする、の三択くらいだろうか。
とりあえず、「All」にして検索してみよう。KaggleのCodeタブに検索機能があるのか知らんけど。
GitHub側は最後だな。
#4:エラー
検索機能、あったよ! 「先生」のNotebookがあった! これを「Copy&Edit」して…。え、本当にこれいじって大丈夫? 不安だなー……。
このコピーNotebook、コメントが多くて助かる。昔、「コメントなくても読める、わかるのが最高のコード」とかイキッたこと言ったことがあるけど、ごめんなさい、アンモナイトが全面的に悪ぅございました。本当に申し訳ありません。コメント大事です。コメントとコーディングルールは必要。
「先生」に「とりあえずCommitしろ」と言われるも、「Commit」が見当たらない。思うに、これは「Run All」でよいのでは? → 「Run All」をクリック。Notebook全体が走る。
が。
「これは……」
コンソールを見ても、「先生」のページの表示と違う。嫌な予感。
コードを見てみると、やはり……赤く反転している箇所がある。
つまり、
「エラー、ですよねー!!」
しかもよりによって「機械学習アルゴリズム」のところで止まってる。
まったくわからん。なんかライブラリ? 配列? 関係っぽいけど……。
バージョンが変わったから、ライブラリにないとか、そういうのかな?
エラー箇所はわかるけど、エラーメッセージはどこ?
エラメがどこに出てるのか、まったくわからん。この赤いところが全部エラメ? だとしても、「ライブラリ? 配列?」のエラーかどうかもわからん。
大丈夫、こういう場合は、落ち着いて、深呼吸をして、自分を信じて、
「G●ogle先生!」と叫ぶのが良い。
(「冒険」はどこへ行った?)(「先生」が多いな……)
#5:デバッグ
いきなりデバッグか。しかもよく知らないKaggleで、Pythonで。
偉大なるGoogl●先生はこんな時も優しく導いてくれる。GitHubへ。
「そこかい!」
ちょっと待て、GitHubに正誤表があるぞ。もしかしたら……ないな。
FAQもあるぞ。もしかしたら……ないな。
こういうときはどうするか。
もちろん、「赤反転してる部分」=「エラー部分」をそのままコピペでG●ogle先生へぶち込む!
ヒットした! GitHubじゃなくて、Twitterで回答してたっぽい。目頭が熱くなる。ありがとう、先生……。
回答コードをNotebookへコピペ。「All Run」。赤反転がなくなる。通ったっぽい。
しかし、Commitまでできてるかどうか、不明。
Commitしたら、自動的にバージョン保存されるって書いてあるけど、バージョンNoが「0」のまま。これは手動で保存するしかないな。保存。うん、バージョンは変わった。
で、提出できたかどうかはどこでわかるんだ? わからん。
メニューバーをいろいろ開いていると、「Submit」という文字を発見。
これ押さないと、ダメなのでは?
失うものがないので、押してみる。「Score」が表示されたので、これでOKっぽい。
どうやら「Submit」するとバージョンが保存される? このあたり、まだまだ謎だな。
#6:Leaderboard
マイページから検索したら、Leaderboardに自分が載っているのを確認できた。
へえええ、こういう仕組みかぁ……。(←内容は全然わかってない)
というか、Boardのトップのほうの、Scoreが「1.0」の人たちはいったいどういう方々? しかも、Entriesが「1」ってことは、1回のSubmitでパーフェクトってこと?
「移動する点P」で数学が永眠したアンモナイトとは世界線が違う。
素直に尊敬。すごい人たちがいるんだなぁ……。
新しいことを学び始めると、「すごい人たちがいる」といつも感じる。
アジャイルの時もそうだった。
「すごい人たちがいる」=人生は捨てたもんじゃない、と思う。
このすごい人たちだって、機械学習を始めたころはゼロだったと思う。そこから学んで、改善して、成果を出してる。すごい。本当にすごい。
変われるって、すごい。
本日の「Kaggle挑戦」はここまでです。
長文にお付き合いいただき、ありがとうございました!