评估模型时,把同一批数据既用来训练又用来评估,得到的分数会虚高。模型可能只是记住了样本,而不是学到规律,这就是过拟合。
规范做法是划分训练集、验证集和测试集。训练集用于拟合参数,验证集用于调超参数和选择模型,测试集只在最后用一次,用来估计泛化效果。
划分时要注意数据泄漏。如果同一用户的行为被分到训练和测试两侧,模型可能通过用户身份间接记住答案。时间序列数据更应该按时间切分,用过去预测未来。
测试集不能反复使用来调参,否则它也会被间接过拟合,最终评估偏乐观。把数据划分和评估流程固定下来,是模型可信的基础,比追求复杂算法更重要。