Adversarial Validation
Adversarial Validation

如果分类模型无法分辨样本(AUC接近0.5),则说明训练集和测试集数据分布比较一致;
如果分类模型可以很好分辨样本(AUC接近1),则说明训练集和测试集数据分布不太一致;
train = pd.read_csv( 'data/train.csv' )test = pd.read_csv( 'data/test.csv' )train['TARGET'] = 1test['TARGET'] = 0data = pd.concat(( train, test ))x = data.drop( [ 'TARGET', 'ID' ], axis = 1 )y = data.TARGETfrom sklearn.cross_validation import train_test_splitx_train, x_test, y_train, y_test = train_test_split(x, y)
在训练集和测试集分布一致的情况中,构建模型的验证AUC一般接近0.5,即分类模型无法判别样本来源:
# logistic regression / AUC: 49.82%# random forest, 10 trees / AUC: 50.05%# random forest, 100 trees / AUC: 49.95%
数据分布不一致怎么办?
假设存在多个训练集,可以使用Adversarial Validation与测试集分布比较一致的一个训练集进行训练;
假设Adversarial Validation的AUC非常高,可以尝试使用Adversarial Validation选择出与测试集比较相似的样本,构建成为验证集。 假设数据集可以扩增,则可以使用外部数据来扩增训练数据,以保证训练数据与测试数据的一致性。

阅读链接
https://www.kaggle.com/h4211819/adversarial-validation
http://fastml.com/adversarial-validation-part-two/
http://fastml.com/adversarial-validation-part-one/
点击查看更多竞赛资讯


文章转载自Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




