吴恩达-coursera-机器学习测试题第十一章

==============================第二讲==============================

=======                                     机器学习系统的设计                                         ======

(一)机器学习系统的设计流程

Step1.使用快速但不完美的算法实现;

Step2.画出学习曲线,分析偏差、方差,判断是否需要更多的数据、增加特征量....;

Step3.误差分析:人工检测错误、发现系统短处,来增加特征量以改进系统。

以垃圾邮件的分类为例:起初你可能找不到太多特征量,除了$、buy、discount等关键词,这时候你应该先快速实现它,然后用交叉验证集去检验,人工去检查出错的邮件的共同特征(比如你发现http超链接比较多等一开始你没想到的特征量);最后你就可以把这些特征量加进你的模型中去重新实验去优化。

(二)数值评估机器学习算法的标准

1.交叉验证集误差(accuracy)

这个很好想到,设计的拟合函数如果用交叉验证集检验误差很大,那么肯定不是一个很好的学习算法;

但,是不是说误差很低就一定是好的学习算法呢?举个例子,这个例子也叫斜偏类

某种癌症的患病率是0.50%,你设计的一个学习算法(综合考虑各种特征量最小化代价函数)得到交叉验证集准确率99.0%,但实际上有这样的一种预测---直接认为样本不发病(不管样本有怎样的特征量),它的交叉验证集准确率却有99.5%,这种预测是不是好的?显然并不是我们的目的。

所以评估学习算法优劣还有下面一个标准:尽可能高的查准率和召回率。

2.查准率、召回率与F值precision、recall、F score

查准率:你预测样本发病样本最后真发病的概率;

召回率:一个最终患病的样本,你之前也预测他患病的概率;

高的查准率意味着,我们在极为确定样本患病的情况下才告诉他患病(或者理解为不轻易预测他患病);

高的召回率意味着,样本有可能患病我们就告诉他(或者理解为普世关怀);

表达式如下图所示:

还是拿之前癌症的例子,你始终预测不患病y=0,召回率就为0,我们希望得到的学习算法是不仅有高的预测准确率,还要有尽可能高的查准率和召回率,所以这种简单的预测y=0的方法并不好。

查准率和召回率有时候不可兼得,所以需要权衡二者,基于二者的判断标准---F值。

F值给出了一个很好判断查准率和召回率的数值计算标准(评估度量值),计算公式见下图:

(三)大数据原理Large data rationale

大量数据往往能大幅度提高学习算法的最终性能,而不在于你是否使用更高级的求解算法等,所以有这样的一句话:

"It's not who has the best algorithm that wins.It's who has the most data."

当然要基于两点前提假设:

1.假设样本的特征能够提供充足的信息进行预测;

你不可能指望只知道房子的面积来预测房价,不管你是不是房地产方面的专家;

2.假设样本能提供尽可能多的特征量;

特征量越多,越不容易出现欠拟合、高偏差的问题;

所以也有这样的结论成立:

1.数据量越大,高方差、过拟合问题越不可能发生;

2.特征量越多,高偏差、欠拟合问题越不可能发生;

================================结语==============================

  

假设有一个庞大的数据集用于训练学习算法。当以下两个条件为真时,对大量数据的训练可能会带来良好的性能。 

 

 

 

 

假设您正在处理垃圾邮件分类器,其中垃圾邮件是正面的例子(y=1),而非垃圾邮件是负面的例子(y=0)。你有一组训练邮件,其中99%的邮件是非垃圾邮件,另外1%是垃圾邮件。下列哪一项是正确的?检查所有的应用。 

 

 

 

为什么要使用F1衡量分类器的性能

查准率(Precision)与查全率(Recall)

以信息检索为例说明,总共50篇文献,其中20篇文献是我感兴趣的目标文献,输入特定检索条件返回10篇文献,其中5篇是我要的文献。

查准率(Precision) = 查出的文章中有多少是正确目标 = 5/10

查全率(Recall) = 总共正确的文章中有多少被正确查出 = 5/20

两种值都是我们想要尽量提高的,但不可能两全其美:想要查准率为1,最好的结果就是一篇文献也没搜到,返回的结果肯定没有分类错误,但这样也没有意义;想要查全率为1,最好的情况就是50篇皆返回,这样搜索本身也失去了意义。

F1作为单独的性能指标

我们将F1定义为查准率与查全率的调和平均数。

这样可以避免出现查全率或查准率为1而另一端为0的极端情况出现。

还可以根据对查准率/查全率的不同偏好设置两者的比率\Beta

比如对癌症的诊断,可能更关心查全率,则\beta设置大于1。

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_40807247/article/details/81407389