5、如何减小误差 [Stanford - Machine Learning]
来源:互联网 发布:音箱设计软件 编辑:程序博客网 时间:2024/05/29 17:58
下面简要介绍一下我们如何减小误差,使我们的系统具有更高的识别率
1、针对性思考。动用大脑想想有没有更有针对性的解决方法,比如特征的选择,适应性更广(比如不区分单词大小写,在对垃圾邮件的处理中)
2、先实现一个简单的系统。通常我们面对一个新问题时,往往先实现一个快速简单的分类方法(比如不用神经网络而用逻辑回归)然后进行误差分析,error analysis误差分析,就是人工的看看那个地方分类分错了,然后想想为什么分错,在决定我要做什么,比如增加特征等。通常我们会找到一些导致我们误差的原因,比如特征选择不好,或者没有预处理什么的,这些误差对于我用复杂的网络或简单的网络实现是没有关系的,最后我们在用一个复杂的网络去实现,以取得最好的分类效果,我们在没有采用新方法并进行试验之前是没办法知道这个新方法(比如添加了新特征)好不好,或有多好,除非我们实现了它,这里就要引入一个numerical evaluation度量的值(这是很重的,只有有了这个值我们才可以进行比较,这个值往往可以设置成识别的成功率),这样才能评估我前后两种方法到底哪个更好。(这也就是为什么我们通常先实现一个简单的分类器的原因,因为它简单嘛,容易训练,节约时间嘛)
3、选择正确的度量值。这点非常重要(相比于简单的选择预测成功率作为评判标准,我们还有更好的选择),这里针对正偏skewed分类举例说明,假设要对病人是否得了癌症进行预测,我有一个系统预测了99%的病人是健康的,1%的病人是得了癌症的。我的预测的准确率也是接近99%,因为大部分人是健康的,而且我也预测准确了。可是事实上0.5%的人是真正得了癌症的,也就是我多预测了一倍的人数(预测的是1%),这样就显得很不准确了,如果我做一个最简单的预测就是所有人都没有的癌症,也就是预测0%的人得癌症了,我的正确率也很高,而且看样子效果和我预测1%的人得癌症的系统的效果相当,1-0.5%=0.5%-0。那么如何选择正确的评估值呢,这里画了一个图,我们用四分法,如图所示(搞懂什么是Precision什么是Recall)有时候用recall更好。通常对待这种正偏的分类,或者大小不对等的分类,我们让y=1代表小的那一类(rare class),通常我们都是这么做的,比如在一个多类的分类器,每一个向量都是形如[1 0 0 0] [0 1 0 0]这样的。
4、厥值选择。在进行预测时,针对具体情况,我们要正确选择我们的录取厥值,因为我们的预测函数事实上是把可能性(简单的处理为大于50%就是true,小于50%就是false)但是在我们预测病人是否得癌症的时候,往往我们要通知他当且仅当我们非常确认的时候(threshold大于90%),这个时候预测的正确率可能会上升一点(未必一定),recall会下降。通常我们还会警告病人你有可能得了癌症需要住院观察一段时间(这时候我们选取threshold大于35%),于是预测正确率下降了,recall上升了。
由于我们选择了两个值作为度量值,相比于一个值来说,我如何通过两个值来评价我的度量呢?(因为通常我们需要的是一个值啊两个值如何判断),比较容易想到的就是取他们的平均值,但是这样做显然是不合理的,比如我们有一个网络对于任何x的输出都是y=1,见下面的例子。我们在应用中通常选取一个函数我们称之为F函数或者F1函数,见图片(注意这几种算法algorithm1-3 他们也许只是厥值threshold不同)
0 0
- 5、如何减小误差 [Stanford - Machine Learning]
- [Coursera][Stanford] Machine Learning Week 5
- Machine Learning (Stanford)
- stanford machine learning 笔记
- Stanford Machine Learning ex1
- Stanford Machine Learning
- Stanford Machine Learning - Lecture 01
- 【machine learning】stanford open class
- stanford machine learning 笔记 1
- Stanford Machine Learning: (2). Logistic_Regression
- Stanford Machine Learning: (3). Regularization
- Stanford Machine Learning: (7). Clustering
- stanford machine learning, linear regression
- Machine Learning(Stanford)-1 Introduction
- Machine Learning Stanford (week 1)
- Machine Learning Stanford (week 2)
- Machine Learning Stanford (week 3)
- coursera Stanford Machine Learning Week6 Ex5机器学习 实验5
- md5sum
- acm算法书籍收藏推荐
- 分析Cocos2d Android 项目的生成和运行
- iOS - 序列化与数据持久化
- C/C++ STL
- 5、如何减小误差 [Stanford - Machine Learning]
- 在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- jsp页面判断登入输入的用户名和密码不能为空
- 模拟实现数据库常用操作效果
- android在edittext中对回车键进行改变
- hdu2059龟兔赛跑
- BufferedReader和BufferedWriter
- uva 11044 Searching for Nessy
- Git学习(二)