第十一章-机器学习系统设计 深度之眼_吴恩达机器学习作业训练营

目录

一,前言

二,具体设计方法

2.1 预处理

2.2 初步设计

2.3 错误分析

三,数值评价标准

3.1 混淆矩阵

3.2精确率与召回率的权衡 

四,数据的作用

五,总结


一,前言

      上一章介绍了如何诊断当前模型并介绍了一些改进的方法。本章主要讨论如何设计算法来达到较好的效果。

      引例:假设给定一些邮件数据集,将邮件标注为了垃圾邮件与非垃圾邮件,请设计一个机器学习系统,使得计算机自动能自动识别垃圾邮件。

二,具体设计方法

2.1 预处理

      第一步 挑选特征。在机器学习系统设计中最重要的一步就是挑选出合适的特征。特征是否有代表性,决定了系统预测能力的上限。在引例中,一般的做法是将邮件中的单词挑出(中文要做分词)生成单词表,挑选出现频率最高的N个单词(N常为10000~50000)作为邮件的特征。具体做法为给每个邮件生成一个特征向量,每一维代表一个单词是否出现(例如0表示未出现,1表示出现)。

     第二步 依据问题,选择正确的辅助方案提升系统精度。常用的办法有:

                   ① 收集更多的数据。E.g 在本例中可以故意暴露邮箱地址在网络,借此收集网络上的垃圾邮件。

                   ②  进一步分析问题,选择更复杂的特征。E.g 在本例中可以分析邮件的标题中是否有特征,一般而言垃圾邮件为了躲开系统的屏蔽会采用一些复杂的标题;再者可以分析文本信息等等。

                   ③采用额外的算法来“生成”特征。E.g 在本例中可以设计程序来甄别出邮件中的错误拼写,垃圾邮件为了躲开系统会检测特殊词汇,一般会将这些词汇故意拼写错误。

2.2 初步设计

     在设计的最初不用妄想一步到位,而是明明的研究,测试和改良。推荐的步骤有:

         ① 先设计出一个简单的系统模型,并运用训练集/交叉验证集/测试集来训练和测试系统。

         ② 根据训练信息画出学习曲线,分析模型算法的试用情况,借此来选择下一步才需什么方式进行改良。

         ③ 误差分析,重点观察那些被错误分类的样本,分析出系统有哪些漏洞,由于什么样的特征而分类错误。

2.3 错误分析

      正如上所言,当设计并训练出初步模型后,可以人工的分析那些被分析错误的样本,明确模型的优缺点,为接下来的改进指明方向。误差分析是在严重的基础上进行。在本例中误差分析的运用具体有:

         ①  统计错分类邮件的类型,了解分类器的薄弱点。例如:买卖物品有15封,保险理财有23封,黑客钓鱼有62封。所以接下改进一步分析黑客钓鱼类软件。

         ② 找出误分类邮件的共同点,添加新特征尝试加大区分度。例如:拼写错误,固定搭配等。

三,数值评价标准

3.1 混淆矩阵

     一个好的数值评价标准可以让直观的反应算法模型的效果,以及改进方案是否有效。例如算法准确度有67%,增加一个特征只能增加0.5%的准确度,则说明增加的通知代表性不强。

     在介绍具体的数值评价标准前,需要了解混淆矩阵(Error metrics)。矩阵中根据样本标签以及分类结果共分为了四种情况。

         正确的正类(TP),即正确的将正类预测为正类。

         错误的负类(FN),即错误的将正类预测为负类。

         错误的正类(FP),即错误的将负类预测为正类。

         正确的负类(TN),即正确的将负类预测为负类。

表11-1 混淆矩阵
  本身为正类(1) 本身为负类(0)
预测为正类(1) TP(11) FP(01)
预测为负类(0) FN(10) TN(00)

还需知道收集到的数据集本身可能是“带有偏见”,即样本中各种类型的数据的出现频率与真实频率不符,也不满足训练要求,使其不具有代表性,这样的数据集称之为斜偏类(Skewed classes)

接下来介绍一些数值评价标准:

     准确率(Accuracy): 分类正确的样本占总样本数量的比例,是最为直观的标准,但在斜偏类中参考价值不足。E.g 本例中,如果95%的邮件都是垃圾邮件,可设计一个把所有邮件都编码为垃圾邮件程序,则该程序的正确率为95%,但其没有学到任何信息。

                                                   A = \frac{TP+TN}{TP+TN+FP+FN}            (公式11.1)

     精确率(Rrecision):所有预测为正类样本中,真正是正类的样本所占的比例。

                                                  P = \frac{TP}{TP+FP}                                   (公式11.2)

     召回率(Recall)所有正类样本中,有预测正确的比例。

                                                  R = \frac{TP}{TP+FN}                                   (公式11.3)

3.2精确率与召回率的权衡 

      通过精确率和召回率可以更有效的评价算法,即使数据集为斜偏类,也能无法得到较高的分数。但是如何权衡两者之间的比重又成为了新问题。

      采用两者的平均值并不具有代表性,所有有了性的评价标准,即为 F1-Score,具体形式为:

                                                  F1 _ {Score} = \frac{2PR}{P+R}                               (公式11.4)

      当P和R两者有一个较小时,F1-Score的值就比较小,当两者都较大时,其值才大。

表11-2 F1-score
  P R AVG F1-Score
A1 0.5 0.4 0.45 0.444
A2 0.7 0.1 0.4 0.175
A3 0.02 0.51 0.51 0.0392

          在上表中举了一个运用数值评价标准的例子,有A1,A2,A3三个算法,通过P和R不能得出直观的选择,而通过平均数来决定显然得到了一个不太优秀的算法,而通过F1-Score可以显然选出P和R都比较好的算法,达到了兼顾。

四,数据的作用

由实验表明,当数据量足够的情况下,一个简单的算法也能达到性能,与复杂算法中适当数据的训练相比也不遑多让。尤其是在模型本身的表征能力就很强,比较有较高多项式的算法,以及复杂的神经网络在中,大量的数据能带来惊人的效果。

当然,具体情况还是要通过诊断和分析后采取适当改良方法,不能一味的盲加数据。

五,总结

本章讨论了机器学习系统设计的一些注意事项以及执行步骤,并介绍了一些数值评价标准来供实验者更好的选择改进方案。最后重点提了下数据的作作用。

     

发布了18 篇原创文章 · 获赞 2 · 访问量 720

猜你喜欢

转载自blog.csdn.net/weixin_41542958/article/details/104082045