Adversarial Validationのメモ
Adversarial Validationとは
いつ使う?
- TrainデータとTestデータの分布が異なる場合
- → Trainデータから適切にValidationデータを作成するのが難しい
- → Kaggleの場合、LocalCVとLBのスコアが一致しないなどの問題が生じる
解決策
1. 「TrainデータかTestデータかを判定する分類器」を作る
2. Trainデータを、Testデータに似ている順にソートする
3. 似ている順に、Trainデータからデータを抽出し、Validationデータとする
応用例 "stochastic adversarial blending"
KaggleのHome Credit Default Riskコンペの2nd place solutionに使われた手法。
2nd place solution ( team ikiri_DS ) | Kaggle
The process is as follows,
- Sample data with a sampling ratio by using adversarial validation as a sampling weight.
- Optimize the weights with train prediction.
- Iterate 1~2 process to get converged weights.
皆さん、聞きなれないお言葉ということで、質問を受けることがありますので、簡単にですが、この場を借りてご説明させていただきます。
— HoxoMaxwell (@Maxwell_110) 2018年9月4日
kaggle ですと、train data と test data が与えられているのが通常でして、test data はさらに、public と private にある割合で分割されています。(続