机器学习(十四)
来源:互联网 发布:chandler bing 知乎 编辑:程序博客网 时间:2024/05/16 18:08
Deciding What to Try Next
当我们已经完成了模型的选择与训练,最后发现对于新的数据集,我们的模型误差很大,我们该怎么办。我们有接下来的一些方法去解决这个问题:
- 获取更多的训练集
- 减少特征数量
- 选择更多的特征
- 增加高次项的特征(
x21,x21,x1x2,etc. ) - 减少
λ (正则系数) - 增加
λ (正则系数)
但是这么多选择,我们应该从哪个入手呢,显然随便选择一个方向去尝试是不太明智的,对于实际的机器学习问题,一般调试都是需要很久的,如果方向错误,几个月的时间就浪费了。所以我们需要进行机器学习诊断,需要对我们的机器学习算法进行测试去找到一个最有可能提高我们模型性能的方向。虽然诊断是需要一定时间的,但是确实很好的利用了时间,而且比盲目尝试要来的划算得多。
首先第一步如何评判我们的假设的模型。
Evaluating a Hypothesis
在之前讲到过拟合的时候,我们提到过可能对于训练集来说我们模型的error很低,但是对于新的数据集可能我们error会变高(因为过拟合)。所以我们一般会把我们的数据集在一开始进行划分,70%的数据作为训练集,剩下的30%作为测试集,训练集用来训练模型,测试集用来模拟新数据拟合我们模型的情况。值得提的一点是,如果数据具有某种顺序或者某种规律,最好随机进行数据划分,个人觉得可能原因应该是减少数据之间的相关性。
使用两个数据集的步骤:
1. 用训练集,学习
2. 计算测试集error
test set error
对于线性回归:
对于分类来说有两种方法:
1. 代价函数
2. Misclassification error (0/1 misclassification error)(分类错误率)
Model Selection
明白怎么评判模型之后,第一步我们就是要验证我们选择的模型是否是最佳的。
假设现在我们要去拟合一个多次方程,那么我们到底应该选择几次方程进行拟合呢,这显然是一个头疼的问题,于是我们使用上面说到的训练集去训练了1到10次方这10个方程。
然后通过测试集给出的error,我们选择使用5次方的模型,那么现在我们要给出模型的泛化能力的指标,但是我们不能直接使用
那么现在我们有了三个数据集,首先使用训练集,训练每个模型参数,然后使用验证集进行测试,选出error最小的模型(模型最高次项为几次方),最后使用测试集给出泛化误差(generalization error)。
- 机器学习(十四)
- 机器学习(十四)Libsvm学习笔记
- 机器学习(十四)Libsvm学习笔记
- 机器学习(十四)SVM总结
- 机器学习课堂笔记(十四)
- 机器学习之numpy和matplotlib学习(十四)
- 机器学习之numpy和matplotlib学习(十四)
- 白话机器学习算法(十四)数据降维
- 白话机器学习算法(十四)数据降维
- 机器学习基础(二十四)—— Random Forest
- 机器学习笔记十四:随机森林
- 机器学习笔记(十四)概率图模型
- 机器学习笔记十四 朴素贝叶斯实例
- 斯坦福机器学习公开课笔记(十四)--大规模机器学习
- OpenCV学习笔记(二十四)——初探机器学习库ml
- 学习笔记(十四)
- 学习python(十四)
- WIX 学习(十四)
- 前端基础学习之Html标签
- ngrok的使用
- iOS中真机运行报错bitcode解决方法
- 数据库多对多嵌套查询语句
- 运行AVD Manager提示要装Intel HAXM可是有提示not compatible with windows
- 机器学习(十四)
- 实例解析OOP程序设计七大设计原则(二)
- PHP实现页面静态化
- 关于像素PNG图片在游戏引擎缩放后出现毛边的解决方案
- 关于JAVA的类的思考
- python之路——生成器
- 【Azure】使用ssh创建访问Linux虚拟机
- Linux下的文件权限解析
- php面向对象