学習する天然ニューラルネット

主に機械学習に関する覚書や情報の整理

AI・機械学習ハンズオン 〜実践Kaggle 初級編〜に参加しました

はじめに

今回はただの日記です。 AI・機械学習ハンズオン 〜実践Kaggle 初級編〜に参加したので、感想を書く。 これから行く人が知りたいだろう情報も書くように心がける。

率直な感想

本当に初級、知ってることがほとんど。だけどもちろん知らないこともあり有意義だった。 懇親会で直接質問できるのは良い。モチベーションも上がる。

対象者は?

勉強会のタイトルには初級編とあるが、具体的に以下に当てはまる人だと感じた。

  • Pythonの文法、PandasやsklearnのAPIはわかってる人
  • lightgbmの使い方はわからない人
  • 本やチュートリアル等ではダラけて時間がかかる人(これ大事)
  • クロスバリデーションとか聞いたことはあるけど具体的にどうコードに落とし込むの?って人

逆に当てはまらない人は以下の通り

  • Python何もわからん(本当に何もわからない)
    • コードの理解に時間がかかってついていけないかも
  • Kaggle何もわからん(経験者)
    • レベル的には一度Kaggleを経験してるならば聞かなくてもいい内容な気がした
  • アルゴリズムを知りたい方

どんなことをやったのか

Compassリンクに詳細があるので、特に印象に残っていたことを書く。

やることはこの本にかかれていることとほぼ同じ。

note.mu

データと環境

hands onはKaggleのタイタニックを使って行われた。 環境はKaggleのkernelを使ってたので、これから参加される方は自分で環境で作る必要はなし。 それに伴って、インストール系の手続きは全て省略された。

データのEDA

ここで使われていたpandas-plofilingを恥ずかしながら知りませんでした…、欠損値とかヒストグラムとかいちいち自分で全部コード書いて確認してた…アホくさ あと、pandasで読み込むときにobject型になってる列でもcategoricalな変数は推論してカテゴリカルだよって教えてくれるっぽいがどういう仕組みになっているんだろうってのが気になった。

LightGBM推しがすごい

titanicのデータ数程度ならSVMとかのほうが汎化能力高いんじゃないかって思ったが、もちろん他のコンペを見据えてこのライブラリを推してるんだろうなという事情を察した。 あとAPIの説明とかそこらへんをしてくれるのは良いと感じたし、詳しく知りたかったらここ見て、という風にリンクをおいておいてくれるのも助かる。

コンペ解法解説

細かいテクニックというよりは、どういう心持ちで進めて行けばいいのか、ということに重点をおいていた。 特徴量作りが大事なんだなぁということがよく痛感させられた。たくさん試行錯誤をするためにも学習が早いLightGBMなんだろうなぁ、ということを勝手に感じた。

Kaggle のシステムの説明

自分で勉強しろっていう話なんですが、やっぱり人に聞いたほうが早くてよい。

懇親会

こういうデータってどう扱ったらいいんですか?みたいな質問が多かった。自分もした。 今まで参加した勉強会(全然ないけど)はことごとく懇親会がなしになっていたので初めてだった。人と話すとモチベーションが高まるので良い。

さいごに

はじめに手を動かしてみる、というのは何事においても重要。そういう面ではこの勉強会は多くの初心者にとって有意義ではないかと感じた。特にkaggleに参加してみたいけど、よくわからないし基礎を手っ取り早く習得したい!という人には。

個人的には中級編を希望したいと感じた。 アンサンブルやスタッキングの仕方、GCPを使った環境のベストプラクティス、どうやって大量のkernelやdiscussionを追いかけるか、等の話である。 もちろん正解なんてないだろうがそこは講師やりかたを聞きたいところであった。あとはkaggleへの時間の割き方とかも聞いてみたいなというところである。(現状、自分が時間の無さを言い訳にkaggleから逃げているので)