やはり休日は暇つぶしが必要だと思い、Kaggleでmovielensデータセットで実験を行った。
最もシンプルなモデルとして、ユーザー×アイテムの行列に対する類似度を算出する方法で、類似ユーザーTop n人のレートの平均値を算出し、Top mのアイテムを出す。
これでNDCG@100で0.36ぐらいなので、ベースラインとしてはまあそのぐらいだろう。
実際、SOTAモデルを見ても、NDCG@100=0.4253ぐらいしか達成していない。
https://paperswithcode.com/sota/collaborative-filtering-on-movielens-1m?metric=nDCG%40100
Kaggleでのコンペは、精神を疲弊しそうだし、自信もないので参加する気はない。
こう、なんというか、それなりの精度のベースラインモデルをササッと作るぐらいで丁度いい。
ところで、自分の7年の業務経験のスキルセットがどの程度なのかというのを視覚化してみたら、多分以下のようになると思う。
genre | level |
コーディング | ★★★★ |
アルゴリズム | ★★★ |
インフラ | ★★ |
機械学習 | ★★★ |
コミュニケーション | ★★ |
ビジネス理解 | ★ |
データ視覚化 | ★★ |
統計学 | ★★ |
実のところ「機能要件をどう実現するか」というエンジニア思考なので、あまり統計科学的な思考は身についていない。
といっても薬学研究の発表があれば「薬の作用・副作用の効果なのか、病気の症状によるものなのか区別がついていない」ということを指摘できる程度の批判的思考は持っているので、
「科学」と名のつくところに科学とは程遠い政治が存在することは知っている。
つまりエンジニアリングが好きで、科学が嫌いなのは、その政治性である。エンジニアリングは、作って見せればそれで実証できるのが好きである。