11、1垃圾邮件分类器
先比较垃圾邮件和正常邮件的不同之处:这两种邮件的差别可能就是垃圾邮件经常会出现buy,deal等单词,我们把两者特有的单词作为特征项,从而得出特征向量。
如何降低你的分类器的错误率:
- 收集大量的数据(honeypot项目)
- 构建更复杂的特征项(邮件的发件人)
- 从邮件信息主体构建更复杂的特征向量(比如对discount和discounts一视同仁)
- 构建更复杂的算法来检测故意错拼的单词
11、2误差分析
开发机器学习的应用步骤(一开始一定是快速建立一个简单的算法):
误差分析:
观察你的算法在哪些邮件上出错,把这些邮件做出一个分类,根据分类你能明确地了解到你的算法在哪一类的垃圾邮件很容易出现误判;然后更具这类邮件的特点,你可以添加额外的特征项来降低这个误判的概率。
数值评估:
有一个指标能评估你的算法的成功率或者失败率很重要,这样你就会及时地了解到你添加某个特征项能不能改进算法,然后做出选择(加或者不加)。
11、3倾斜类的误差指标(查准率和查全率)
问题:
这里我们只有0.5%的病人患有癌症,假如这时候我们摒弃所有的特征项,预测所有的病人都没有癌症,这时候我们的错误率只有0.5%,这甚至会比我们精心设计的算法的错误率还要低,但这并不表示这是一个好的算法。所以我们知道对于倾斜类,我们仅仅以错误率作为评判算法效果的指标是远远不够的。
查准率和查全率:
高查准率和查全率是评估一个算法优异的重要标准。
11、4查准率和查全率的平衡
1)当我们想要我们的癌症预测更有说服力,我们会将我们的threshold的值设为0.7、0.9
这样我们的查准率高、查全率低
2)当我们想要尽量让所有癌症患者都能被查出,我们会将我们的threshold的值设为0.3
这样我们的查准率低、查全率高
我们知道查准率和查全率的关系就像图中所示,一方高、另一方必然会低。这就需要我们自己选择最合适的查准率和查全率的组合。
如何衡量查准率和查全率组合的分数:
平均值显然不合理(平均值会让算法三得到最好的分数)
具体的分数计算如下图中所示,我们根据各种组合的分数大小的比较来选择一组分数最高的组合。
11、5用于机器学习的数据
一般来说,数据越大算法效果越好。一些在数据量较小的时候表现差的算法,可能会在数据量较大的时候提升很多。
这里我们要求数据集中的数据必须是合理有效的,有效的评判标准就是:当我们将这些数据集中X提供给人,人能够预测出Y值。
下图中:英语单词填空是合理的;仅仅根据面积估计房价是不合理的。
由于这个学习算法有很多参数,这个算法的偏差一定很小;
又因为数据量很大,这个算法的方差会很小(不太可能过拟合)。