我有一个一般性的问题:
在之前的工作中,我被要求构建一系列非线性模型,以量化某些因素对医疗索赔数量的影响。我们有一组变量会在所有模型中使用(例如:州、年份、性别等)。我们使用了所有数据来构建这些模型;也就是说,我们从未将数据分成训练和测试数据集。
如果我能回到那个工作岗位并将数据分成训练和测试数据集,除了评估模型的预测准确性之外,这样做的优势是什么?不分割数据然后拟合模型的理由是什么?直到现在我才真正开始思考这个问题,好奇我们为什么没有采取这种方法。
谢谢!
回答:
设置测试集的唯一目的是评估预测准确性。然而,这不仅仅是检查数字并想“这就是我的模型表现如何”这么简单!
了解你的模型在某一时刻的表现,为模型的潜在改进提供了一个重要的基准。否则,你如何知道添加一个特征是否会提高模型性能?此外,你如何知道你的模型是否比单纯的随机猜测更好?有时候,极其简单的模型会超越更复杂的模型。
另一件事是移除特征或观察。这在某种程度上取决于你使用的模型类型,但有些模型(例如,k-最近邻)如果从数据中移除不重要的特征,性能会显著提高。同样,假设你添加了更多的训练数据,突然你的模型的测试性能显著下降。或许新观察中有什么问题?你应该意识到这些事情。
我不使用测试集的唯一理由是,否则你将没有足够的训练数据让模型达到最佳性能。