2022年3月21日
ワクチン三回目接種翌日。副反応により微熱とけだるさでまぁまぁの体調の悪さ。カロナールなどを飲みつつ過ごす。
雑草、適当に水だけでだいぶ生き残っていて、すごい生命力。
映画コードギアス 復活のルルーシュを観る。二回目。一回目見たときよりも面白く見れた気がする。郷愁を誘う良い作品だ。
引き続き、PyTorchとfastaiではじめるディープラーニングを読み進め。9章はテーブルデータに対するアプローチで、Kaggleコンペゴールドのスコアが出る手法をニューラルネットで実装する。章の最初の方に「機械学習はデータセットを扱うほとんどのケースで決定木(ランダムフォレストと勾配ブースティング)もしくはニューラルネットワークでモデル化できる(ので、ほかの何十ものアルゴリズムを色々最初に学ぶ必要はない)」的なことが書かれていて、割り切り感が良い。テーブルデータの解析時には基本は決定木ベースで、カーディナリティが大きいカテゴリ変数や文章を含むデータならニューラルネットワークも試す、みたいに実用に沿った説明もある。
9章前半は、Kaggleコンペの説明のような感じで、決定木とランダムフォレストを使いデータを解釈しながら説明する。まったくNNとは関係がないのだけど、さすがKaggleトップランカーの話だけあって分かりやすいし面白い。ランダムフォレストの復習(決定木、バギング、アンサンブル)と、ランダムフォレストを使ってデータをどう解釈するかの理解が進んだ。
後半はNNでサラッと実装、NNとのランダムフォレストでのアンサンブルの説明がなされ、最後にNNの埋め込みを特徴量として、再度ランダムフォレストなどやNNにかけると性能向上する(やり方)など、いやーこの章も面白かったなぁ。
ちなみにスコアは、特徴量を色々削る前のデータをLightGBMにくべてみる(ハイパーパラメータは特につけず。評価関数は標準でrmseのようだし)と、そのスコアが一番良いし高速という感じでlgbスゴイ…。