机器学习中的训练/测试数据集

我有一个一般性的问题:

在之前的工作中,我被要求构建一系列非线性模型,以量化某些因素对医疗索赔数量的影响。我们有一组变量会在所有模型中使用(例如:州、年份、性别等)。我们使用了所有数据来构建这些模型;也就是说,我们从未将数据分成训练和测试数据集。

如果我能回到那个工作岗位并将数据分成训练和测试数据集,除了评估模型的预测准确性之外,这样做的优势是什么?不分割数据然后拟合模型的理由是什么?直到现在我才真正开始思考这个问题,好奇我们为什么没有采取这种方法。

谢谢!


回答:

设置测试集的唯一目的是评估预测准确性。然而,这不仅仅是检查数字并想“这就是我的模型表现如何”这么简单!

了解你的模型在某一时刻的表现,为模型的潜在改进提供了一个重要的基准。否则,你如何知道添加一个特征是否会提高模型性能?此外,你如何知道你的模型是否比单纯的随机猜测更好?有时候,极其简单的模型会超越更复杂的模型。

另一件事是移除特征或观察。这在某种程度上取决于你使用的模型类型,但有些模型(例如,k-最近邻)如果从数据中移除不重要的特征,性能会显著提高。同样,假设你添加了更多的训练数据,突然你的模型的测试性能显著下降。或许新观察中有什么问题?你应该意识到这些事情。

我不使用测试集的唯一理由是,否则你将没有足够的训练数据让模型达到最佳性能。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注