您选择正确的方法来避免数据泄漏,如您所说 - 的 嵌套的CV 强> 。
事情在嵌套CV中,你估计的不是你可以“掌握”的真实估算器的分数,而是一个不存在的“元估计器”,它也描述了你的模型选择过程。
含义 - 在外部交叉验证的每一轮中(在您的情况下由...表示) cross_val_score ),估算器 clf_auc 经历内部CV,在外部CV的给定折叠下选择最佳模型。 因此,对于外部简历的每个折叠,您将对内部简历选择的不同估计进行评分。
例如,在一个外部CV折叠中,得分的模型可以是选择参数的模型 algo__min_child_weight 为1,在另一个模型中选择它为2。
因此,外部简历的得分代表了更高级别的得分:“在合理的模型选择过程中,我所选模型的概括程度如何”。
现在,如果你想用一个真实的模型完成这个过程,你必须以某种方式选择它(cross_val_score不会为你做那个)。
这样做的方法是现在使您的内部模型适合整个数据。 意思是执行:
clf_auc.fit(X, y)
的 这是了解你在这里做了什么的时刻: 强>
关于问题#2 - 如果缩放器是管道的一部分,则没有理由在外部操纵X_train。