对抗验证()

X_train = train_1[feas]
X_test = test_1[feas]
#建一个新的label,训练集label为1测试集label为0
features = X_train.columns.tolist()
X_train['label'] = 1
X_test['label'] = 0
train_test = pd.concat([X_train, X_test], axis =0,ignore_index=True)
train1, test1 = train_test_split(train_test, test_size=0.33, random_state=42, shuffle=True)
train_y = train1['label'].values
test_y = test1['label'].values
del train1['label'], test1['label']
#用label去训练每一个特征然后预测测试集
if 'label' in features:
    features.remove('label')

adversarial_result = pd.DataFrame(index=train1.columns,columns=['roc'])
for i in features:
    clf = lgb.LGBMClassifier(
        random_state=47,
        max_depth=2,
        metric='auc',
        n_estimators=1000,
        importance_type='gain'
    )
    clf.fit(
        np.array(train1[i]).reshape(-1,1),
        train_y,
        eval_set=[(np.array(test1[i]).reshape(-1,1),test_y)],
        early_stopping_rounds=200,
        verbose=0)
    temp_pred = clf.predict_proba(np.array(test1[i]).reshape(-1,1))[:,1]
    roc1 = roc_auc_score(test_y,temp_pred)
    adversarial_result.loc[i,'roc'] = roc1
#如果训练集和测试集分布一致的话auc应该0.5  不一致的话auc会接近1   
a = adversarial_result.sort_values('roc', ascending=False)
a
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值