u++の備忘録

Adversarial Validationのメモ

はじめに

下記の英語記事から要旨を抜粋して、日本語でまとめた。

fastml.com
fastml.com

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,

  1. Sample data with a sampling ratio by using adversarial validation as a sampling weight.
  2. Optimize the weights with train prediction.
  3. Iterate 1~2 process to get converged weights.