Kaggle Tokyo Meetup #4に参加しました。
主催者によりすでに資料も動画もきれいにまとまっているので簡単に感想でも。
サンタコンペで二度全完した話
サンタと子供をマッチングして幸福度を最大にする問題。双子制約により一見とくのが大変そうだが、制約を無視して一度最小費用流で解いた後に分岐限定法を適用することで最適解が求まる。
Rustが正式に128bit対応したのはつい数日前なので時系列合わないなあと思い懇親会で聞いたらNightly build使ったとのこと。つよい。
「猫でも取れる金メダル」「猫しか取れない金メダル」
Rossmanコンペの解放をベースにRecruitコンペに挑んだ話。予約データは未来になるほど量が減衰するため、日毎、週毎にモデルを作成した。
リーダーボードのPublicとPrivateの時系列範囲を元にvalid位置を決めるやり方は参考になった。Kaggle運営もPublicリーダーボードの桁表示数減らしたり色々しているようなので、PublicとPrivateのsplitが今後も時系列できれいにいくのかは不明ですが。
IEEE‘s Signal Processing Society 10th Solution と得られた学び
写真から写真を撮ったカメラを当てるコンペ。p>0.99以上のデータのみを使ってPseudo-Labelingを行った。
逆に言えば、人間だと無理そうなのに0.99で当てられるということ。ニューラルネットベースなのでアレだが、何がきいているんだろう。
Using NumPy efficiently
Numpyの歴史とbroadcastの話。デモありでarray内部のバイト数や配置を解説していた。
Cのベンチマークが気になったので手元で比較してみたが、むしろ言うほどNumpyが速くならなかった。condaのせいかバージョンのせいか...
BNPコンペにCatboostを使ってみた話
過去コンペにCatboostを適用した話。大量のカテゴリがあるデータでもlikelihood encodingが有効だった。Catboostは内部的にlikelihood encodingみたいなことをしており素でも精度が出た。
とてもよく調査しており毎度ためになる。default hyper parameterの比較表はとても有用なので今度気にしてみよう。
2018 Data Science Bowlの振り返り
初のinstance segmentationのコンペ。一般的にはMask R-CNNがSOTAとして知られているが、アンサンブルしづらいためU-NETベースの手法で挑んだ。
2 stage制のつらみにあふれていた。今度ただのsegmentationのコンペでも試しにエッジのベクトル情報入れてみようと思った。
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
直近のコンペの優勝手法の解説。Negative down-samplingすることで計算量を減らした。GBDTは無意味な特徴量に対してロバスト。
他の発表でもそうだが、人間よりGBDTの方が賢いとの主張が身にしみる。実装がC++で競プロ力を感じたが、もうあのテンプレートエラーみたくない...
所感
1st place ソリューションの解説もあり、知見の塊だった。
健康第一なので残念ながら人間性は捧げられないが、やっぱゴールド欲しいなあ。