首页 > 解决方案 > 如果嵌套模型是在相同的数据上训练的,它会过拟合吗

问题描述

如果我构建一个机器学习模型,它使用另一个机器学习模型的输出,而这两个模型都在相同的数据上进行训练,它会过拟合吗?基本上我想知道我是否可以使用 KNN 预测结果作为深度神经网络模型的输入,而这两个模型都在相同的数据上进行训练。

标签: machine-learning

解决方案


嵌套机器学习模型是可能的。例如,神经元网络可以看作是多个嵌套的感知器(参见https://en.wikipedia.org/wiki/Perceptron)。

然而,你是对的——嵌套机器学习模型会增加整个机器学习系统的 VC 维度(https://en.wikipedia.org/wiki/VC_dimension),从而增加过拟合的风险。

在实践中,经常使用交叉验证来降低过度拟合的风险。

编辑:

@MatiasValdenegro +1 指向我在回答中没有明确说明的一点。纯交叉验证确实只能用于检测过拟合。

然而,当我们训练某些机器学习系统(如神经元网络)时,可以使用某种交叉验证来降低过度拟合的风险。为此,我们只需丢弃例如 10% 的训练数据进行训练。然后在每一轮训练之后,训练好的机器学习系统在丢弃的训练数据上进行评估。一旦经过训练的神经网络在丢弃的部分上变得更糟,训练算法就会停止。例如,这是由 python pybrain ( http://pybrain.org/ ) 库完成的。


推荐阅读