😺
SMBC Group GREEN×DATA Challenge 18位解法
SMBC Group GREEN×DATA Challenge 18位解法
最初に
- 参加者の方はお疲れさまでした
- 予想よりかなりShakeupしました
- Public LBの上位陣を見てもそこまで提出数が多くなかったので、ここまでshakeすることは予想外でした
- 自分はCVが改善しない限りあまり提出しない方針なのでshakeupしやすかったものと思います
- コードは hnoya/prj-comp-signate-1247-smbc に公開しています
やったこと
問題設定
- 3クラス分類
モデル
- CatBoost
CV
- StratifiedKFold (n=5)
- MetricはMacroF1を使用
- 最適化関数はTrainデータセットのラベル出現頻度の反比例で重みづけしたCross Entropy
- つまり重みの比は[1/クラス0の割合, 1/クラス1の割合, 1/クラス2の割合]
特徴量
- ターゲットエンコーディング
- 統計的特徴量ならびそれらとの差分、比
- カウントエンコーディング
- (別のコンペのコードからの流用なので)Train/Testのデータセットの大きさに差がある場合を考慮し、実際にはカウントではなくデータセット数との割合
Post Processing
- Scipyによるシグモイド関数の温度の最適化
- CatBoostのクラス分類の予測値はシグモイド関数を通す必要があるため、そのついでに温度を最適化
効かなかったこと
問題設定
- 2値分類 x 3モデル
- 特に0: Fairと1: Goodの性能が大きく改善しそうだった
- 1: Goodは3クラス分類よりも多くのIteration数でより高い精度まで学習できそうでした
- 単純に平均すると0.39X程度になることが分かったので期待しました
- 3つのモデルの予測値をうまく統合できず、3クラスのモデルに劣後でした
- 特に0: Fairと1: Goodの性能が大きく改善しそうだった
- 回帰モデル + 閾値の最適化
- 経験上、順序のある分類タスクでは回帰モデルはうまく機能するので試しました
- 2: Poorの割合が小さいためか、3クラスのモデルに劣後でした
モデル
- LightGBM
- CatBoostと比較して1: Goodの性能に優れていたが、0: Fairと2:Poorの性能が劣っており、全体的には劣後でした
特徴量
- ターゲットエンコーディングの値など、1次の集計値に対しての統計的特徴量
アンサンブル
- CatBoost, LightGBMどちらか一方の方が良かったです
- モデルごとに効く特徴量が違ったので、特徴量を変えれば効いたかもしれません
残ったこと
CV
-
手元のCVをmacroF1以外の指標、例えばCrossEntropyやAUC-muで測った方が良かったのではないか、との疑問が未解決でした
- 2値分類タスクのF1指標の場合、ROC-AUCで改善の可否を判断することが多い印象です
- 経験上、F1は閾値の決め方によってスコアが大きく変わってしまうこと、最適化に使われるCrossEntropyとF1の間に乖離があることなどから不安定な指標です
- 特に不均衡なデータセットかつMacro平均の場合に少量データの影響を受けやすい印象です
- 閾値を決めた後の0/1、つまり大小関係が最終的な結果に大きく影響するため、ROC-AUCが大体のケースで適しています
- 経験上、F1は閾値の決め方によってスコアが大きく変わってしまうこと、最適化に使われるCrossEntropyとF1の間に乖離があることなどから不安定な指標です
- 今回はデータセットの比率と各ラベルのF1スコアは大体以下の感じで、特に不安定な印象でした
- データセットの比率 Fair: 0.175, Good: 0.79, Bad: 0.035
- 各ラベルのF1スコアFair: 0.24, Good: 0.77, Bad: 0.07 -> 0.36
- そのままだとBadをどう割り振るか? にかなりスコアが左右されてしまうと推測します
- 実際、Learning Rateを0.01から0.1にして実験していた際、手元で0.361から0.372まで改善したことがありました
- 単にうまく割り振られただけのことで、LB上では0.371から0.365へかなり悪化しました
- 2値分類タスクのF1指標の場合、ROC-AUCで改善の可否を判断することが多い印象です
-
CrossEntropyは結局F1で評価する際には閾値(大小関係)しか見ないため、今一つあてにならないことが分かりました
- そこで時間が切れてしまい、AUC-muは検証できませんでした
特徴量
- 天候データ
- 暴風等で木が折れるなどのイベントが入っていた場合、予測に必要だと思いました
- 無料で入手する場合は2週間程度かかりそうだったため、間に合いませんでした
- 位置データのクラスタリング
- 同じ道沿い(=最短距離法)、似たような箇所にあるものなどが効きそうだと思いました
- 位置情報の粒度が荒いこと、CV/LBの相関が気になっておりそちらを先にやっていたことから間に合いませんでした
Discussion