スパムメールフィルターの開発にチャレンジ!
ktr
不均衡データにはUnderSampling+Baggingが割と定石っぽいのでLogisticRegression+前処理なしTFIDFを初手に選びましたPublicLBで0.9831626045でした
ベースラインから、word2vec+SWEMなど諸々を試しましたがあまり改善せず二値分類でこれほどハイスコアなのでpseudo labelingが効くだろうと思って試しました
モデルはDistilBERTを使用。データはベースライン同様にundersampling。testの予測から閾値でsamplingしてsoft labelとして訓練データに加えました。これとベースラインをアンサンブルしてPublic 0.9897731280でしたこのモデル自体はsubmitしていないのでスコアは不明です
4thの方も同様にpseudo labelingしていますが、スコアに差があるのでおそらくうまくいっていないと思います。Hardラベルではない点、undersamplingした少量データでのtransforemerの使用が微妙だったのかもしれません。他上位の方で使用されていたらソリューションを期待致します。
一部のtrainデータがtestにリークしているので予測を置き換えました。EDAディスカッションでは354個確認できたとありますが、¥r¥nをブランクでリプレイスすると合計526個見つかりました。なぜかtestでは一部が¥r¥nになっていないテキストがあるっぽかったです。
¥r¥n
これでpublicで0.000929ほど伸びました。(testで0.000776ほど)
どうやら合計では1000個ほどあるらしく、終了ギリギリまで0.99を超えなかったので上位はこの辺りが関係しているのかなと思ったりしました
敗因はPseudo labelingの失敗かと思います。CNNもなぜか失敗したので自分のモデリング力不足を痛感しました。純粋なNLPコンペは最近あまりないので久しぶりで楽しかったです。ありがとうございました。