這篇解什麼問題
淺層模型在文字分類上到底能打到什麼程度,值不值得當作正式的比較基準——而不是隨便找個數字交差。
我怎麼做
流程很直接:把訓練集切 80/20(random_state=42,按標籤分層抽樣,之後 Route B、C 都用同一份切分,才能公平比較),TF-IDF 向量化文字(1-2 gram、最多 2 萬個特徵、去除英文停用詞),丟進 Logistic Regression 訓練。驗證完之後,用完整訓練集重新配適一次,拿去預測正式的 Kaggle 測試集、產出提交檔。
整個流程——含向量化、訓練、驗證——0.5 秒跑完。這不是筆誤,淺層模型在小資料集上就是這麼快。
結果與數據
本地驗證(80/20 切分)F1 是 0.76238;提交到 Kaggle 之後,public leaderboard 分數是 0.80018——比本地驗證分數高,原因是本地驗證只用了 20% 的訓練資料當驗證集,樣本數少,分數本來就會有變異;真正配適時用了全部訓練資料,模型看到的資料量變多,表現也跟著上去。
一句話結論
災難推文的分類線索其實很表面——關鍵字、標點、用詞習慣——淺層模型不用理解語意也能抓到七、八成,這就是為什麼 TF-IDF 這種上個世代的技術,在這類任務上依然是一條該認真對待的基準線。