之前一直理解错了 我知道K折交叉验证是在模型选择过程(model selection)中用来评估候选模型的。把整个训练集分成k份,一共进行k次评估,每次用k-1份训练,用1份来验证。 之前以为这k次是对同一个模型迭代训练的,其实不是!其实是产生了k个模型,对他们的误差取平均,来评估你选择的模型好不好,是用来评估的,进一步选择你要使用的模型的,不是用来训练的,训练还是要用全部数据直接跑 注意sklearn做交叉验证的时候,需要使用相同的estimator,所以用了clone! 参考1 参考2