【机器学习】——分类:两分类及相关任务

一、前言

垃圾邮件识别是机器学习中一个常见的任务,它属于一个分类任务。分类任务也分为两分类任务多分类任务,本节我将以该任务为例子先介绍两分类任务,并介绍2类其他任务:类概率估计和排序

在进入正题之前,先介绍相关概念:

  • 实例:机器学习中的对象通常被称为实例。
  • 实例空间:是由所有可能的或可描述的实例(样本)所构成的集合,无论它们是否存在于已有的数据集中。
  • 标签空间:在有监督学习中,标签空间用于对样本进行标记。
  • 模型:从实例空间到输出空间的映射。
  • 输出空间:分类任务中,输出空间是一个由不同类别构成的集合;在回归任务中,输出空间是一个实数集。
  • 噪声:包括标签噪声和实例噪声。标签噪声意味着与真实的标记函数存在差异,实例噪声意味着我们所观测的实例由于某种原因偏离了真实值。

                                   

二、分类

2.1案例

两类分类又称为二元分类或是概念学习,本例挑选了垃圾邮件50封,普通邮件50封作为测试集,这里设定垃圾邮件为正类(+),普通邮件为负类(-)。如果某个邮件中包含单词“Viagra”,则判定为垃圾邮件,否则要看邮件中是否有单词“lottery”,如果有,则判定为垃圾邮件。根据如下特征树(左)来看,50封垃圾邮件中有30封被正确分类,50封普通邮件中有40封被正确分类。将其转换成一个决策树(用最简单的多数类决策,对每个叶结点进行标记),如右图所示。

很显然,这个两类分类器并没有将测试集完全正确地区分开,因此,接下来我们要讨论如何评价分类器的性能。

       

2.2分类性能的评价

根据上面的数据,可以列出一个列联表(混淆矩阵),一般地,一个K类列联表中有(k+1)^{2}项,而且自由度为k^{2}

 预测为+预测为- 
实际+30(TP)20(FN)50(Pos)
实际-10(FP)40(TN)50(Neg)
 4060100

这里需要大家了解一下各种指标的计算方法,除了标红的量之外,以下指标只适合两类分类:

  • 正例数目:Pos,指的是实际的正例数目
  • 负例数目:Neg,指的是实际的正例数目
  • 真正例的数目:TP,预测值和实际值相同,都为正例
  • 真负例的数目:TN,预测值和实际值相同,都为负例
  • 假正例的数目:FP=Neg-TN,预测值为正例,实际值为负例
  • 假负例的数目:FN=Pos-TP,预测值为负例,实际值为正例
  • 正例的比例:pos=Pos/Te  (Te是测试集)
  • 负例的比例:neg=1-pos
  • 类比率:clr=Pos/Neg
  • 准确率:acc=pos·tpr+neg·tnr,指的是预测值和实际值相同的数目占测试集的比例,即真正率和真负率的加权平均值
  • 错误率:err=1-acc,假正率和假负率的加权平均值
  • 真正率,敏感度,召回率(查全率):tpr=TP/Pos
  • 真负率,特异性,负召回率(负查全率):tnr=TN/Neg
  • 假正率,虚警率:fpr=FP/Neg=1-tnr
  • 假负率:fnr=FN/Pos=1-tpr
  • 精度,置信度:prec=TP/(TP+FP)

因此,上述案例中:30个真正例,20个假负例,40个真负例,10个假正例。真正率0.6,真负率0.8,假负率0.4,假正率0.2。

注意:如果我们感兴趣的是少数类,且规模很小,则不应该优化针对多数类的准确率和性能,应该使用精度作为指标,取代真负率。

2.3分类性能的可视化

覆盖图:是一种将分类器及其他模型的性能可视化的重要工具,在覆盖图中,通常将Neg作为横轴,Pos作为纵轴。覆盖图一般是矩形。

ROC图:ROC图是覆盖图将坐标规范化处理(横坐标除Neg,纵坐标除Pos)后得到的图,此时x轴是假正率,y轴是真正率。ROC图是一个长度为1的正方形。

如图,是拿上述例子画出的图。左侧为覆盖图,对角线表面准确率相同。右侧为ROC图,对角线表面平均查全率(真正率和真负率的均值)相同。可以看出,C1和C3的性能都优于C2,但是C1和C3选哪个,取决于我们更看重正例还是负例。

                                       

  • 在覆盖图中,任意两个具有相同准确率的分类器均可由斜率为1的线段连接。
  • 在ROC图中,斜率为1的线段连接了具有相同平均查全率的分类器。
  • 覆盖图和ROC图中,平均查全率等值线都与升对角线平行。

三、评分与排序

3.1案例

首先,将上述的特征树依据如下规则转换成一个评分树:

                                                  

先计算垃圾邮件与普通邮件的比值,并将其取对数即可得到一个分数(对数底数不重要,这里为了取整,将底数取2),当得分s'(x)>0,划分为垃圾邮件,否则划分为普通邮件。如果样本真实类c(x)为正例,取+1,为负例,取-1。当预测结果正确的时候,z(x)=c(x)s'(x)为正,否则为负,z(x)也被称作x的裕量。较大的正裕量样本应该给予“奖励”,大的负裕量应该“惩罚”,因此引出了损失函数。

损失函数有如下5种:

  • 0-1损失:当z\leq 0L_{01}(z)=1;当z>0L_{01}(z)=0
  • hinge损失:当z\leq 1L_{h}(z)=(1-z);当z> 1L_{h}(z)=0
  • logistic损失:L_{log}(z)=log_{2}(1+exp(-z))
  • 指数损失:L_{exp}(z)=exp(-z)
  • 平方损失:L_{sq}(z)=(1-z)^{2},当z> 1,可以仿照hinge函数那样将该函数取值为0。

                                                   

3.2排序性能的评价

排序误差:假设有x1和x2两个实例,且x1的得分低于x2,即s'(x1)<s'(x2),当x1为正例,x2为负例的时候,我们作出决策是不利的,这种情况称作排序误差。对于获得相同分数的正例和负例(并列关系),只统计半排序误差(排序误差/2)。

排序误差的最大值就是:Pos·Neg

排序误差率:rankErr,(s'(x1)<s'(x2)的数目总和+半排序误差)/ Pos·Neg

排序准确率:rankAcc=1-rankErr

3.3排序性能的可视化

注:由于是学习笔记,这里不记载详细分析过程,如有问题请关注私聊我!

在排序的可视化中,依然可以使用覆盖曲线和ROC图。覆盖曲线下方的面积就是排序正确的实力对的总数量。而在ROC图中,曲线下方的面积就是排序准确率,通常被称作AUC。

通过在排序中选择分裂点,可将排序转化为分类问题,每个分裂点对应图中曲线转折点。

四、类概率估计

类概率估计子是一种评分分类器,我们假定p'(x)是实例x预测为正类的概率,如图是概率估计树。

                                                     

平方误差:SE(x),

均方误差:MSE(x),平方误差的均值

经验概率:叶结点覆盖的实例中正例的相对出现频率,

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值