Answers:
我建议您参阅http://statweb.stanford.edu/~tibs/ElemStatLearn/printings/ESLII_print10.pdf中的“ 7.10.2交叉验证的错误和正确方法” 。
作者给出了一个示例,其中有人执行以下操作:
这听起来非常类似于对所有数据(即训练和测试)进行EDA,并使用EDA选择“良好”预测变量。
作者解释了这为什么会带来问题:交叉验证的错误率将人为地降低,这可能会误导您以为您找到了一个好的模型。
因此,您想确定对因变量有影响的自变量?
然后,实际上两种方法都不值得推荐。
在确定了研究问题之后,您应该发展自己的理论。也就是说,使用文献,您应该确定应该起作用的变量(您应该能够解释原因)。
在测试数据上应用EDA是错误的。
培训是寻找正确答案以创建最佳模型的过程。这个过程不仅限于在训练数据上运行代码。使用来自EDA的信息来决定使用哪种模型,调整参数等是训练过程的一部分,因此不应被允许访问测试数据。因此,要忠实于您,请仅使用测试数据来检查模型的性能。
另外,如果您发现模型在测试期间表现不佳,然后又重新调整模型,那也不好。而是将您的训练数据一分为二。使用一个进行训练,使用另一个进行测试和调整模型。请参阅测试集和验证集有什么区别?
“在此示例中,这是进行交叉验证的正确方法:
- 将样本随机分为K个交叉验证折痕(组)。
- 对于每一折,k = 1、2,...。。。,K
(a)使用除k倍样本外的所有样本,找到与类别标签表现出相当强(单变量)相关性的“良好”预测变量的子集。
(b)仅使用此预测变量子集,使用除k倍样本外的所有样本建立多元分类器。
(c)使用分类器来预测k倍样本的类别标签。”