一种自动分类数据方法2_判断模型好坏_学习曲线 luikimfai
2017-11-23 11:33
489 查看
1. 本文由来
在上一篇文章【一种自动分类数据方法_初探索】中, 雷健辉介绍了一个用机器学习训练数据的简单方法。 算法的选择有很多中, 例如支持向量机svm, 朴素贝叶斯, 决定树(decision tree)等。那么如何判断哪种模型比较适合于训练已有的数据呢? 本文简单记录了一个判断方法。2. 概念:过拟合(overfitting),欠拟合(underfitting)
英文强的同学可以直接看这里:http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html#sphx-glr-auto-examples-model-selection-plot-underfitting-overfitting-py
其实所谓的机器学习, 为方便理解, 都可以把其想象为上图这个模型: 在二维平面上的一群数据, 我们希望计算机能够给出一个函数曲线, 这个曲线要尽量的拟合我们给出的数据点。
左图是最简单的函数曲线 y=ax,也就是一条直线, 明显可以看到, 拟合的效果并不好, 直线的轨迹和散点的轨迹差距太大。 这也叫欠拟合。
中图是一个二次方或三次方的函数曲线, 得出的效果不错, 线的轨迹和点基本重合。
右图, 函数的次方数提高似乎对于拟合有不错的效果, 是不是次方数越高越好呢? 答案是否定的, 右图的函数曲线表明, 即使能够绝对的拟合现有的数据, 这样的曲线却早已大幅偏离的黄色实际曲线。 这也叫过拟合。
3. 回到实际例子
假如我们使用朴素贝叶斯算法来训练我们的数据, 如何判断训练出来的判断器是出于哪种状态? 是过拟合,还是欠拟合, 还是拟合得不错呢?这里就要介绍一个好的判断方法: 学习曲线learning_curve:
Again,英文强的同学可以直接看这里:
http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html
学习曲线会从少量的训练数据开始, 慢慢增加数据量(从200 增加的1400),
学习曲线会划N份训练数据集,用于做【对比训练】
关键点在于:红线是每份训练数据集训练后的准确率, 绿线是不同训练数据集相互打分的准确率(又叫交叉打分cross validation score)。
如果出现【欠拟合】,那么红线,绿线都会判断不准, 在图形上出现的特征是聚合分数不高, 红线,绿线在图形出现的位置偏下。
如果出现【过拟合】,交叉打分会偏低, 那么红线,绿线在图形中出现间隔较大的特征。
给出几个不同算法对现有数据学习曲线效果的实例:
4. 小结
根据本人上面的方法, 我们拥有了判断不同模型好坏的工具。 下一步, 雷健辉将尝试不同参数调整对模型效果的影响。相关文章推荐
- 一种自动分类数据方法_初探索
- 论文学习-从感知到决策:一种自动地面机器人的端到端运动规划的数据驱动方法
- 一种新型的基于隐马尔科夫模型—支持向量机模型的文本分类方法
- 文本数据的机器学习自动分类方法(下)
- 文本数据的机器学习自动分类方法
- 一种自动处理数据表的方法
- 达观数据:文本大数据的机器学习自动分类方法
- OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏
- <模型汇总_9> 深度学习网络的表达方式汇总及模型分类方法
- Python学习笔记1:数据模型和特殊方法(魔术方法)
- 文本数据的机器学习自动分类方法(上)
- Matlab中,一种用脚本自动配置Simulink模型设置的方法
- Python学习笔记1:数据模型和特殊方法(魔术方法)
- 一种基于时空特征及有监督学习的医学图像分类方法:Automatic apical view classfication of echocardiograms using a ...
- 文本数据的机器学习自动分类方法(转)
- JS小技巧:判断数据类型的一种方法
- vim python自动补全方法 分类: ubuntu python基础学习 虚拟机 测试 2013-07-05 15:37 603人阅读 评论(0) 收藏
- 学习ThinkPHP3.2.2:video8,提交页面后的处理方法包括有效判断数据插入页面跳转功能
- tensorflow学习-示例1(MNIST数据集合上的softmax分类模型)
- 达观数据:文本大数据的机器学习自动分类方法