machine-learning - 如果嵌套模型是在相同的数据上训练的,它会过拟合吗
问题描述
如果我构建一个机器学习模型,它使用另一个机器学习模型的输出,而这两个模型都在相同的数据上进行训练,它会过拟合吗?基本上我想知道我是否可以使用 KNN 预测结果作为深度神经网络模型的输入,而这两个模型都在相同的数据上进行训练。
解决方案
嵌套机器学习模型是可能的。例如,神经元网络可以看作是多个嵌套的感知器(参见https://en.wikipedia.org/wiki/Perceptron)。
然而,你是对的——嵌套机器学习模型会增加整个机器学习系统的 VC 维度(https://en.wikipedia.org/wiki/VC_dimension),从而增加过拟合的风险。
在实践中,经常使用交叉验证来降低过度拟合的风险。
编辑:
@MatiasValdenegro +1 指向我在回答中没有明确说明的一点。纯交叉验证确实只能用于检测过拟合。
然而,当我们训练某些机器学习系统(如神经元网络)时,可以使用某种交叉验证来降低过度拟合的风险。为此,我们只需丢弃例如 10% 的训练数据进行训练。然后在每一轮训练之后,训练好的机器学习系统在丢弃的训练数据上进行评估。一旦经过训练的神经网络在丢弃的部分上变得更糟,训练算法就会停止。例如,这是由 python pybrain ( http://pybrain.org/ ) 库完成的。
推荐阅读
- php - 如何在本地计算机上安装的服务器上编写程序包?
- java - 无法加载请求的类:Tomcat 和 IntelliJ 上的 com.mysql.jdbc.Driver
- javascript - 从单独的 JavaScript 文件禁用另一个 HTML 文件上的按钮
- javascript - 在 Angular 中使用 jQuery 是一种不好的做法吗?
- angularjs - 无法在我的控制器 AngularjS 中访问表单内容,例如用户名...
- php - 中间字符串 RegEx/PHP 空格删除“在其他地方”工作
- reactjs - 如何使用 Jest 和 Enzyme 测试按钮的 onClick 道具
- django - AttributeError:“ModelFormOptions”对象没有属性“private_fields”
- fiware-orion - Fiware-Orion:地理位置
- vue.js - Vuetify RadioGroup 全宽