第66集 python机器学习:信息泄露示例说明( 二 )

from sklearn.feature_selection import SelectPercentile f_regression

select = SelectPercentile(score_func=f_regression percentile=5).fit(x y)

x_selected = select.transform(x)

print(\"x_selected shape :{\".format(x_selected.shape))

print(\"cross validation accuracy of Ridge: {:.3F\".format(np.mean(cross_val_score(Ridge()

x_selected y cv=5))))

运行结果为:

cross validation accuracy of Ridge: 0.935

从运行结果来看 , 随机获取的数据集得到的平均R2居然为0.935 , 显然是不符合实际情况的 , 由于我们在交叉验证之外对特征进行拟合 , 所以他能够找到在训练部分和测试部分相关的特征 。 从测试部分泄露出去的信息包含的信息量非常大 , 导致得到不切实际的结果 。 下面我们通过使用管道来进行预测 , 然后看看对比结果:

推荐阅读