预测可见数据和不可见数据之间的差异

数据挖掘 分类 特征选择 机器学习模型 预言
2022-03-12 10:48:18

我试图用可见和不可见的数据来测试我的模型(可见数据是我用来学习模型的数据)。我发现,随着我增加特征数量,可以正确预测可见数据,而使用特征选择技术时,可以正确预测未见数据。对此有什么解释吗。

提前致谢

2个回答

通常,您在构建预测模型时想要做的是缩小可见数据(训练数据)和不可见数据(测试数据)的损失之间的差距。增加特征的数量自然会使假设(旨在从您的训练中学习并将接收看不见的数据 (X) 以预测您的目标值 (Y) 的函数)更加复杂,并且可以在一定程度上完美地拟合您的训练数据点,但是有一个阈值(根据你的结果,你通过增加特征的数量来达到这个值),你的模型开始在你的训练集上给出非常好的结果,并且测试集上的结果要差得多,这称为过度拟合,这是由模型中的高方差引起的问题,这基本上意味着您允许您的函数足够复杂以完美地拟合您的训练数据,并且无法预测看不见数据(您的测试数据)。

如果可以减少训练损失和测试损失之间的差距,请使用特征选择技术

请注意,在此示例中,增加特征数量会减少测试损失,但在某个点上,测试损失再次开始上升。

图片

对于具有大量特征的数据,通常情况下,其中许多特征与您感兴趣的目标变量无关或弱相关。甚至可以使用这些无信息的特征来构建模型,并且您通常可以在一组特定的样本中找到一个模式 - 具有足够的特征,即使是嘈杂的特征也可能在样本子集中(您的训练数据)。问题是这些特征在一般意义上没有提供信息,因此使用这些特征构建的模型将在您的训练数据上表现良好,但在看不见的测试数据上表现不佳。这称为过度拟合,这意味着您的模型对训练数据过于具体,并且不能很好地泛化。

特征选择可以帮助在模型构建过程之前消除这些不相关的特征,这可以大大提高许多算法的性能。您通常希望在训练数据和测试数据上看到相似的性能,这表明您的模型构建过程在可见和不可见数据上的表现同样出色。

需要注意的一点是,请务必仅使用训练数据进行特征选择,不要使用完整数据集进行特征选择,然后拆分为训练集和测试集以进行模型构建和评估。如果你这样做,你的测试集就会被你的特征选择所污染,使你的测试指标有偏差并且很可能过于乐观。