機械学習コンペのKaggleを始めました✨(2021年5月27日)
最初にKaggle、機械学習、ディープ、GPUだよなぁ、と思って自分の環境のリソース使われるよなぁと思って、なかなか手を出さず(これが超簡単超手軽なんですよ)
重い腰を上げて、Kaggleに登録したらタイタニックの問題をやればいいんだけど、そのあとに何をすればいいのかで詰まり、コンペに参加してみたら何をすればよいのかわからず、GPUとかどうつかうんや!となり
そんな感じでKaggle入門時に詰まったところをメモしていきます!
Contents
Kaggleの開発環境:ネットにつながるPCとブラウザだけあればOK!
機械学習といえば、ディープラーニング。ディープラーニングといえば、GPUで殴る。CPUで実行してたら、一生終わらない(/・ω・)/
自分の環境のGPUが使われるの嫌だなぁと思ってました。しかし、KaggleにはKaggle Notebooksというブラウザ上でいろいろ完結するものが用意されています!GPUも時間制限があるけど使える!
GPU付きのパソコン要らない! GPUを使ったセッションは週に30時間までの制限がありますが、無料で手軽に使える入門用環境としては十分すぎる!
Kaggle Notebookはこんな感じ↓
Jupyter NotebookやGoogle Colabを使ったことのある人は、それと同じようなやつ
ブラウザ上でPythonが実行できてMarkdownでメモも残せる!
データのインポートも簡単にできるのは魅力的!(^^)!
Kaggleに登録したら
Kaggleに登録したらタイタニックの問題をやります。Kaggle側がおススメしてたのでやるべし!
データの種類は少なくて、適当にSVMとかで解いても0.75くらいの正答率が出る簡単な問題です。
下記画像はタイタニックの問題のページですが、ここのOverviewに書いてあることを読めば、データの読み込み方、モデルの作成方法、結果のsubmitの仕方までを一通り学べます。
更にわからなかったら、Codeのタブにいろいろな人が作成したタイタニックの問題を解いたKaggle Notebookが上がっているので、それを参考にすると良い。
タイタニックの結果をsubmitしてみるとLeadersboardに自分の結果が乗ります。残念ながらチート行為をしている人たちがいるようで、ランキングは当てになりません。上位のどこまでがチート使っている人なのか判別不可能。少なくともScoreが1.0の人たちはみんなチート野郎。
チート行為を説明するNotebookが出回ってしまってるんですよ。(リンクは張らないぞ。探すなよ怒)最近のコンペは対処済みのはず。
昔のTitanic入門記事を見ると、Scoreが0.8を超えればかなり良い方みたいなので、まずはそのあたりが目標か。
私は適当なSVMでモデルを作って0.76, ちょっと考えて0.78になったので、まぁこれでいいかとタイタニックは終わりにしました。
ほとんどはOverviewとCodeにある他の人のコードを参考にしたら解決したのですが、このタイタニック問題でつまずいたところが一つだけ。どうやってKaggle Notebookからsubmitするの?
Kaggle Notebookからsubmitする方法
Kaggle APIを使うと直接できるらしい?Notebookから直接submitできないかな?と謎になってました。
いろいろやったけどよくわからないので、Kaggle Notebookから出力されたファイルをダウンロードしてSubmitページに手動でアップロードしようとして?になりました。
出力したはずのファイルがないんですよ!Notebook右側のファイル一覧みたいなところに!
ちゃんとできてれば、下画像のようにoutputの下にsubmission用のファイルが生成されるようにしたはずでした。
どうも実行終了からDataのところにファイルが現れるまで時間差があるようで、赤丸の更新ボタンみたいなところを押したら出てきました。
対象のファイルをダウンロードして、手動でsubmit!
なんかもっとスマートなやり方がわかれば追記予定。
タイタニックの次に何しよう??
タイタニックはそこそこできたので、他のコンペとかやりたいな!と思いましたが、どれをやればいいかわからない。。。
迷っていても仕方がないので、適当に一番上にあった「SIIM-FISABIO-RSNA COVID-19 Detection」というコンペに参加しました。これは画像を入力として肺炎を検出するタスクのようです。
DICOM画像形式という初めて見たデータフォーマット、出力はクラス分類に加えてbounding boxの推定も含まれている。。。submit形式もなんかよくわからんぞ
タイタニックから、いきなり難易度が上がってしまい、これは悪手だったかなと思いましたが、Codeを見てみると初心者向けに解説してる人がたくさん!
なので、たぶんタイタニックの次はどのコンペに参加しても良くて、Codeにある他の人のコードや解説してくれているNotebookを参考にやっていけばよいのだと思っています。
No responses yet