一、面临的主要问题
以一个邮件分类问题为例:
如何通过监督学习的方法来构造一个分类器?
- 如何表示邮件的特征向量
通过分类标签和特征向量就可以通过逻辑回归算法构造一个分类器。
构造一个含有100个单词的列表,这样就构造了一个100维的特征向量。
一般在实际应用中,会挑选使用最频繁的10000-50000个单词
- 如何在有限的时间内让垃圾邮件分类器具有更高的精确度和低错误率
大量的数据有时候会有用,但是大多数情况下不管用。
可能会用更复杂的特征变量来描述垃圾邮件,例如加入发件人的信息
二、如何制定一个复杂的机器学习系统?
- 用一个简单的机器学习系统快速实现
- 画出学习曲线再决定改进的方法
- 误差分析:看看被错误分类的邮件有什么共同的特征,再考虑构造更复杂的特征向量。
在交叉验证集(非测试集)上做误差分析
通过单一的数值评价指标观察误差率的变化,以此来判断改进方法是否可行
三、不对称性分类的误差评估
设定某个实数值来评估学习算法并衡量它的表现。
偏斜类的问题(skewed classes):使用一个合适的误差度量值来评估机器学习算法
在这个癌症检测的例子中,假设有0.5%的病人得了癌症。
上面一个算法是我们通过在训练集上训练,在测试集上测试得到1%的错误率;
下面一个算法是没有以上操作,是一个非机器学习的算法,它直接粗暴地预测所有病人都没有得癌症,因为只有0.5%的病人得了癌症,因此错误率只有0.5%。
此时后者的错误率更小,可见这种评估方法不够准确完备。
这种情况发生在正例和负例的比例非常接近一个极端的情况,正样本的数量与负样本的数量相比非常少(y=1的数量特别少,患癌症的病人很少),这种问题被称作偏斜类问题
此时使用分类误差、分类精确度来作为评估度量可能会产生如下问题:分类误差降低但是分类模型的质量并没有提升。
此时我们需要一个不同的误差度量值或者不同的评估度量值。
其中一种评估度量值(evaluation metric)是查准率和召回率(precision recall)
准确率(precision) 代表你预测的准不准。
召回率(recall) 代表你能不能预测准。
用这个评估方法来度量上面那个非机器学习算法:
recall为0,说明阳性预测数量为0,如果数据在阴性方向偏斜,那么就要考虑算法是否存在欺骗
通常会用y=1来表示我们希望检测的出现较少的类
四、精确度和召回率的权衡
(1)根据实际应用背景权衡模型的精确率和召回率
保证查准率和召回率的相对平衡。
这个例子应该是要求召回率高的
如果只有在非常确信的情况下,才将患者确诊为癌症(即调高临界值),这样会使精确度提高(在所有预测为癌症的人中确实患癌症的比率提高),但是会出现漏查的情况,召回率降低(即在所有实际患癌症的人中,有更多的人没有被确诊为癌症,真癌症的数量减少)
查准率和召回率的关系曲线,总体上来看是负相关,是相互制约的关系,细节上的细微差别取决于具体的机器学习算法。
(2)自动选取临界值
F 1 S c o r e F_1Score F1Score的定义会考虑一部分查准率和召回率的平均值,但是会给查准率和召回率中较低的值更高的权重。要使 F 1 S c o r e F_1Score F1Score比较大,需要查准率和召回率同时较大。