数据挖掘导论学习笔记 第五章 分类算法

5.1基于规则的分类器

基于规则的分类器的规则用析取范式 R = ( r 1 ∨ r 2 ∨ ⋯ ∨ r k ) R=(r_1\lor r_2 \lor \cdots \lor r_k) R=(r1r2rk)表示。R称作规则集, r i r_i ri是分类规则或析取项
每一个分类规则都可以表示为:规则前件 ⇒ \Rightarrow 规则后件
如果规则r的前件和记录x的属性匹配,则称r覆盖x。称r被激发或被触发。
分类规则的质量可以用覆盖率(coverage)和准确率(accuracy)来度量 C o v e r a g e ( r ) = ∣ A ∣ ∣ D ∣ A c c u r a c y ( r ) = ∣ A ∩ y ∣ ∣ A ∣ Coverage(r)=\frac{|A|}{|D|} \\ \\ \\ Accuracy(r)=\frac{|A\cap y|}{|A|} Coverage(r)=DAAccuracy(r)=AAy
其中|A|表示符合前件的记录数, ∣ A ∩ y ∣ |A\cap y| Ay表示同时符合前后件的记录数,|D|表示记录总数。

5.1.1基于规则的分类器的工作原理

互斥规则(Mutually Exclusive Rule):如果规则集R中不存在两条规则被同一条记录触发,则称R中的规则是互斥的。。
穷举规则(Exhaustive Rule):如果对属性值任一组合,R中都有一条规则加以覆盖,则称规则集R具有穷举覆盖
默认规则:默认规则的前件为空,当所有其他规则失效时触发。
有序规则(ordered rule):在这种方法中,规则集中的规则按照优先级降序排列,优先级的定义方法很多(覆盖率准确率总描述长度规则产生的顺序等)。有序的规则集也称决策表(decision list)
无序规则:允许一条测试记录触发多条分类规则,每触发一次看做一次对类的加权投票(权数可以是准确率),最后根据票数将记录分配到某个类标号。这优于有序原则,建模开销也小,但对测试记录分类很繁重。
本章主要讨论使用有序规则的分类器

5.1.2规则的排序方案

基于规则的排序方案
基于类的排序方案:大部分分类器都是用这种方案

5.1.4规则提取的直接方法

直接方法就是直接从数据中提取分类规则

Rule_set = {}; //学习的规则集初试为空
 E是训练记录,Y是类的有序集
for 每个类c do
     repeat
         Rule = Learn_One_Rule(E,Att-vals,y)
         从E中删除被Rule覆盖的训练记录;
      until终止条件被满足
      Rule_set = Rule_set +Rule%追加rule到列表尾部
end for
把默认规则插入到规则列表的尾部
返回Rule_set
1.Learn-One-Rule函数

Learn_One_Rule采用一种贪心的增长规则。他先产生一个初始规则r。并不断对该规则求精,直到满足某种终止条件为止。
规则增长策略
(1)从一般到特殊:从初始规则r(前件为空)开始,添加合取项来提高规则质量
(2)从特殊到一般:相反
束状搜索:算法维护k个最佳候选规则,个候选规则在其前件中添加或删除合取项独立增长。评估候选规则的质量,选择k个进行下一轮迭代
规则评估 由于准确率存在片面性,我们提供以下几种方法来解决问题。

(1)可以使用统计检验剪出覆盖率较低的规则。似然比(likelihood ratio)统计量: R = 2 ∑ i = 1 k f i log ⁡ 2 f i / e i R=2\sum_{i=1}^kf_i\log_2{f_i/e_i} R=2i=1kfilog2fi/ei
k表示类的个数, f i f_i fi表示被规则覆盖的类i的样本的观测频率, e i e_i ei是规则做随机猜测的期望频率。R是满足自由度为k-1的 χ 2 \chi^2 χ2分布。较大的R值说明该规则作出的正确预测数显著的大于随机猜测的结果。
(2)可以使用一种考虑规则覆盖率的评估度量:
L a p l a c e = f + + 1 n + k m 估 计 = f + + k p + n + k Laplace=\frac{f_++1}{n+k} \\ m估计=\frac{f_++k p_+}{n+k} Laplace=n+kf++1m=n+kf++kp+
n为规则覆盖的样例数, f + f_+ f+为规则覆盖的正例数,k是总类数,p+是正类的先验概率。由于规则的覆盖率,两个度量达到了准确率和正类先验概率之间的平衡。当覆盖率很高时,他们都趋向于规则的准确率 f + / n f_+/n f+/n
(3)另一种可使用的评估度量是考虑规则的支持度计数的评估度量。
F O I L 信 息 增 益 = p 1 × ( log ⁡ 2 p 1 p 1 + n 1 − log ⁡ 2 p 0 p 0 + n 0 ) FOIL信息增益=p_1 \times (\log_2{\frac{p_1}{p_1+n_1}}-\log_2{\frac{p_0}{p_0+n_0}}) FOIL=p1×(log2p1+n1p1log2p0+n0p0)在这种度量中,规则的支持度计数对应于它所覆盖的正例数。假设规则r:A→+覆盖p0个正例和n0个反例,增加新的合取项B,扩展后的规则r‘=A且B→+覆盖p1个正例,和n1个反例。
该度量值与p1和p1/(p1_n1)成正比,所以它倾向于选择那些高支持度计数和高准确率的规则。
规则剪枝,对于Learn——One——Rule函数产生的的规则,也可以像对第四章中的决策树一样剪枝,来改善泛化误差。就像4.4节介绍的那样。

2.顺序覆盖基本原理

规则提取出来后,顺序覆盖算法必须删除该规则所覆盖的所有正例和反例。

3.RIPPER算法

该算法的复杂度几乎线性的随着训练样例的数目增长,并且特别适合为类分布不均衡的数据及建立模型。它也能很好地处理噪声数据集。
RIPPER算法按照类的频率进行排序 ( y 1 , y 2 , ⋯   , y c ) (y_1,y_2,\cdots,y_c) (y1,y2,,yc)其中,y1是最不频繁地类,在第一次迭代中,先把属于 y 1 y_1 y1的样例标记为正例,把其他的样例标记为反例,使用顺序覆盖算法产生规则,直到剩下最后一个类yc,把它作为默认类。
规则增长使用FOIL信息增益来组安泽最佳合取项添加到规则前件中。通过计算 ( p − n ) / ( p + n ) (p-n)/(p+n) (pn)/(p+n)来判断是否剪枝,其中p,n分别是被覆盖的确认集中的正例与反例数,如果该度量值增加就进行剪枝。
建立规则及规则生成后,他所覆盖的所有正反例都要删除。只要改规则不违反最小描述长度原则的终止条件,就将它添加到规则集中。具体措施需要进一步学习。

5.1.5规则提取的间接方法

现在介绍一种基于决策树生成规则集的方法。
决策树从根节点到叶节点的路径表示为一个分类规则,这样的规则是完全且互斥的。但可以进行简化,尽管简化后不再互斥,但更容易解释。
规则产生 只要简化后的规则的误差率低于原规则的误差率,就保留其中悲观误差率最低的规则。重复进行知道不能再改进为止。
规则排序 C4.5规则算法使用基于类的排序方案定序。同一个类的规则分到同一个子集中。计算每个子集的总描述长度,然后各类按照总描述长度由小到大排序。类的总描述长度等于 L e x c e p t i o n + g × L m o d e l L_{exception}+g\times L_{model} Lexception+g×Lmodel,其中 L e x c e p t i o n L_{exception} Lexception是对误分类样例编码所需要的比特位数, L m o d e l L_model Lmodel是对模型编码所需要的比特位数,而g是调节参数。调节参数取决于模型中冗余属性的数量。

基于规则分类器的特征

  1. 基于规则的分类器可以构造更为复杂的决策边界
  2. 基于类的规则的定序方法非常是预处理类分布不平均的数据集
  3. 性能可与决策树分类模型媲美

5.2 最近邻分类器

积极学习方法(eager learner):先建模,再预测(一劳永逸)
消极学习方法(lazy learner):比如Rote分类器,记住训练数据,匹配时再分类(现学现卖)
最近邻分类器:把每个样例看做d维空间的一个数据点,d是属性个数。
如果数据点的近邻中有多个类标号,则将该数据点指派到其最近邻的多数类。k值得选择很重要,k太小,分类器容易受到容易受到噪声影响产生过拟合,如果k太大可能会误分类。

5.2.1 算法

k-最近邻分类算法
令k是最近邻数目,D是训练样例集合
for 每个测试样例z=(x',y') do
	计算z和每个样例(x,y)∈D之间的距离d(x',x)
	选择离x最近的k个样例的集合D_z
	y'=argmax∑I(v=y_i)

距离加权表决 y ′ = arg max ⁡ v ∑ ( x i , y i ) ∈ D i w i × I ( v = y i ) y'=\argmax_v \sum_{(x_i,y_i)\in D_i}w_i \times I(v=y_i) y=vargmax(xi,yi)Diwi×I(v=yi)其中,v是类标号,y是一个最近邻的类标号, I ( . ) I(.) I(.)是指示函数,参数为真返回1,否则为0。 w i = 1 / d w_i=1/d wi=1/d,表示远离z的样例对分类的影响变弱。

5.3贝叶斯分类器

贝叶斯分类器是一种对属性集和类变量的概率关系建模的方法。

5.3.3 朴素贝叶斯分类器

2.朴素贝叶斯分类器如何工作

对每个类Y计算后验概率: P ( Y ∣ X ) = P ( Y ) ∏ i = 1 d P ( X i ∣ Y ) P ( X ) P(Y|X)=\frac{P(Y)\prod_{i=1}^dP(X_i|Y)}{P(X)} P(YX)=P(X)P(Y)i=1dP(XiY)由于对所有的Y,P(X)都是固定的,因此只需要计算条件概率就可以了。

3.估计分类属性的条件概率

对于分类属性 X i X_i Xi,根据类y中属性值等于 x i x_i xi的训练实例的比例就可以了,比如7个还清房贷的人里面有3个结婚,那么就是3/7

4.估计连续属性的条件概率

朴素贝叶斯分类有两种方法
1.可以把一个连续属性离散化。这要注意,离散区间的数目不能太多也不能太少。
2.可以将设连续变量服从某种概率分布,然后使用训练数据估计分布的参数。比如正态分布,通过求训练记录的均值和方差来估计条件概率。
在计算条件概率的时候P(Y|X),X是一个向量,包含多个属性,我们假设多个属性相互独立,所以应该算多个条件概率的乘积 ∏ P ( X i ∣ Y ) \prod P(X_i|Y) P(XiY)

6.条件概率的m估计

上述方法有一个缺点就是,如果有一个属性的类条件概率为0,那么乘积为零。解决该问题的途径就是使用m估计
P ( x i ∣ y j ) = n c + m p n + m P(x_i|y_j)=\frac{n_c+mp}{n+m} P(xiyj)=n+mnc+mp其中,n是类 y j y_j yj中的实例总数, n c n_c nc表示类 y j y_j yj的训练样例中的取值 x i x_i xi的样例数,m是称为等价样本大小的参数,而p是用户指定的参数。如果n=0,则条件概率就就是p,因此p可以看做是类y中观察属性值x的先验概率。等价样本大小决定先验概率p与观测概率 n c / n n_c/n nc/n之间的平衡。

7.朴素贝叶斯分类器的特征

  • 面对孤立的噪声点,朴素贝叶斯分类器是健壮的。
  • 面对无关属性,也是健壮的。
  • 相关属性可能会降低朴素贝叶斯分类器的性能

5.3.4 贝叶斯误差率

当先验概率不同时,决策边界朝着先验概率较小的类移动。
B a t e s   e r r o r   r a t e = ∫ 0 x ^ P ( Y 1 ∣ X ) d X + ∫ x ^ ∞ P ( Y 2 ∣ X ) d X Bates\ error \ rate =\int_0^{\hat{x}}P(Y_1|X)dX + \int_{\hat{x}}^{\infty}P(Y_2|X)dX Bates error rate=0x^P(Y1X)dX+x^P(Y2X)dX

5.3.5贝叶斯网络

该方法不需要给定类的所有属性都条件独立。

1.模型表示

贝叶斯信念网络(Bayesian belief networks,BBN ),用图形表示一组随机变量之间的概率关系。它有两个组成部分

  1. 一个有向无环图,表示变量之间的依赖关系
  2. 一个概率表,把节点和他的直接父节点关联起来。
D
C
A
B

如图,D是C的父母,是A的祖先,B是C的子女,B是D的后代

  • 如果结点X没有父母结点,则表中只包含先验概率P(X)
  • 如果结点X只有一个父母结点Y,则表中包含条件概率P(X|Y)
  • 如果结点X有多个父母结点,则表中包含条件概率P(X|Y1,…,Yk)

性质1:贝叶斯网络中的一个结点,如果它的父母结点已知,则它的条件独立于它的所有非后代结点。
给定C,B独立于A和D。一条有向路径就是一条规则。

2.建立模型

  • 创建网络结构
  • 估计每一个结点的概率表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FLmm539Y-1582592758681)(http://image.sciencenet.cn/album/201211/26/15452104kqr04wbr9o66kz.png)]
为了简化模型的计算,我们可以把变量分为原因变量和结果变量,然后规定从原因变量向其对应的结果变量画弧。

4.BBN的特点

1.用图形模型来捕获特定领域的先验知识,网络还可以用来对变量之间的因果依赖关系进行编码
2.构造网络费时费力,但一旦网络结构确定下来,添加新变量就很容易
3.BBN适合处理不完整的数据
4.因为数据和先验知识以概率的方式结合起来了,所以BBN对模型的的过拟合是很鲁棒的。

5.4人工神经网络

5.4.2 多层人工神经网络
  • 在前馈神经网络(feed-foward)中,每一层结点仅和下一层结点相连。在递归(recurrent)神经网络中,允许同一层结点相连或一层结点连到前面各层中的结点
  • 激活函数有很多,雨荨隐藏结点和输出节点的输出值呈非线性关系
  • 因为缺少隐藏结点的真实输出的先验知识,这使得很难确定各隐藏结点的误差项。
  • 我们可以使用梯度下降法,求误差函数的极小值来确定权数,但这也会出现局部最优的问题
  • 反向传播(back-propagation):分为两个阶段,前向阶段和后向阶段。在前项阶段,使用前一次迭代所得到的权值计算网络中每一个神经元的输出值,计算是前项进行的,即先更新k层的权值再更新k+1层权值。在后向阶段,先更新k+1层,再更新k层。运用反向传播的方法,可以用k+1层的误差估计第k层的误差

设计问题

  • 确定输入层结点的数目。对于k元变量,,可以为每一个分类值创建一个分类结点,也可以 用 log ⁡ 2 k \log_2k log2k个输入节点对k元变量进行编码
  • 选择网络拓部结构。目标函数取决于链上的权值,隐藏结点数和隐藏层数,结点的偏置和激活函数的类型。找拓扑结构的一种方法是,使用足够多的结点和隐藏层的全连接网络然后使用较少的结点重复该建模过程,这种方法非常耗时。另一种方法是,不重复建模过程。而是删除一些结点,然后重复模型评价过程来选择合适的模型复杂度
  • 初始化可以随机赋值

5.4.3人工神经网络的特点

  • 选择合适的拓扑结构防止过拟合很重要
  • ANN可以处理冗余特征,因为权值是自动学习的,可以很小
  • 对噪声敏感。处理噪声的一种方法是使用确认集来确定模型的泛化误差,另一种是每次迭代把权值减少一个因子
  • 在权值更新公式中添加一个动量项(momentum term)

5.5 支持向量机(supporting vector machine,SVM)

支持向量机可以很好地应用于高维数据,避免了维灾难问题。它使用训练实例的一个子集来表示决策边界,该子集称作支持向量。

5.5.1最大边缘超平面

  • 每个决策边界都对应着一对超平面,超平面之间的距离就是分类器的边缘
    基本原理:具有较大边缘的决策边界有更好的决策误差
    结构风险最小化理论:在概率 1 − η 1-\eta 1η下,分类器的泛化误差在最坏条件下满足 R ≤ R e + φ ( h N , , log ⁡ ( N ) N ) R\le R_e +\varphi\left( \frac{h}{N},,\frac{\log(N)}{N}\right) RRe+φ(Nh,,Nlog(N))
    R e R_e Re是分类器的训练误差、训练样本数N,模型复杂度h即它的能力(capacity),R表示泛化误差的上界, φ \varphi φ是能力h的单调增函数。
    它与4.4.4节中最想描述长度原理十分相似。体现了训练误差和复杂度之间的折中。线性模型的能力和它的边缘逆相关,拥有较小边缘的模型拥有较高的能力

5.5.2线性支持向量机:可分情况

线性SVM寻找具有最大边缘的超平面,因此也被称为最大边缘分类器
1线性决策边界
KaTeX parse error: Expected & or \\ or \cr or \end at end of input: … \\ end{cases}
2线性分类器边缘
两个平行的超平面可以表示如下
y = 1 , 如 果 w ⋅ z + b > 0 y = − 1 , 如 果 w ⋅ z + b < 0 y=1 ,如果w·z+b>0\\ y=-1,如果w·z+b<0 y=1,wz+b>0y=1,wz+b<0两个超平面可以表示为
b i 1 : w ∙ x + b =     1 b i 2 : w ∙ x + b = − 1 b_{i1}:w\bullet x+b=\ \ \ 1\\ b_{i2}:w\bullet x+b=-1 bi1:wx+b=   1bi2:wx+b=1
d = 2 ∣ ∣ w ∣ ∣ d=\frac{2}{||w||} d=w2d表示边缘大小

3.学习线性SVM模型
为了学习出 w , b w,b w,b我们得到一个约束
y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N y_i(w·x_i+b)\ge 1,i=1,2,\cdots,N yi(wxi+b)1,i=1,2,,N
为了求最大边缘,要求 f ( w ) = ∣ ∣ w ∣ ∣ 2 2 f(w)=\frac{||w||^2}{2} f(w)=2w2的最小值
于是我们可以综合写成一个拉格朗日函数的形式
L p = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N ( y i ( w ⋅ x i + b ) − 1 ) L_p=\frac{1}{2}{||w||}^2-\sum_{i=1}^N(y_i(w·x_i+b)-1) Lp=21w2i=1N(yi(wxi+b)1)
通过对 w , b w,b w,b求偏导和KKT条以及把 L p L_p Lp写成对偶形式
决策边界可以表示成 ( ∑ i = 1 N λ i y i x i ⋅ x ) + b = 0 \left(\sum_{i=1}^N \lambda_iy_ix_i·x \right)+b=0 (i=1Nλiyixix)+b=0
b可以通过求解支持向量公式 λ i [ y i ( w ⋅ x i + b ) − 1 ] = 0 \lambda_i[y_i(w·x_i+b)-1]=0 λi[yi(wxi+b)1]=0得到,由于lambda通过数值计算得到,因此b可能不唯一,它取决于所使用的支持向量,实践中使用b的平均值做决策边界的参数。

5.5.3不可分情况

类似

5.5.4非线性支持向量机

当我们遇到非线性的分类情况,很难用线性的超平面来划分。因此我们可以使用属性变换的方法变化坐标系,把非线性空间转换成线性空间,但这会导致维灾难。这个问题在后面的叙述中会提到解决办法

学习非线性SVM模型

这个过程和学习线性SVM的过程完全相似,惟一的区别在于用 ϕ ( x ) \phi(x) ϕ(x)来替换一切x,其中 ϕ \phi ϕ是x的变换函数

核技术

在原属性中计算的相似度函数K称为核函数(ernel function).
在非线性SVM中使用的核函数必须满足Mercer定理。这样我们不必知道 ϕ \phi ϕ的具体形式,因为核函数可以用x与y的点积形式表示。
比如: K ( x , y ) = ( x ⋅ y + 1 ) p K(x,y)=(x·y+1)^p K(x,y)=(xy+1)p K ( x , y ) = t a n h ( k x ⋅ y − σ ) K(x,y)=tanh(kx·y-\sigma) K(x,y)=tanh(kxyσ)

支持向量机的特征
  • SVM学习问题可以表示为凸优化问题,因此可以求得全局最优解
  • SVM扩展到多类问题

5.6 组合方法

通过聚集多个分类器的预测来提高准确率。这些技术称为组合(ensemble).组合方法有训练数据构建一组基分类器,通过对每个基分类器的预测进行投票来进行分类。

5.6.1基本原理

如果基分类器实行互独立的(即他们的误差是不相关的),则仅当超过一半的基分类器都预测错误时,组合分类器才会做出错误预测。这种情况下,组合分类器的误差率为:
e e n s e m b l e = ∑ i = 12 25 C 25 i ε i ( 1 − ε ) ( 25 − i ) e_ensemble=\sum^{25}_{i=12}C_{25}^i\varepsilon^i(1-\varepsilon)^{(25-i)} eensemble=i=1225C25iεi(1ε)(25i)这里假设有一个25个分类器的组合,每一个基分类器的误差为 ε \varepsilon ε,当 ε > 0.5 \varepsilon\gt0.5 ε>0.5时组合分类器比不上基分类器。
实际上,基分类器很难做到相互独立,当然也不会完全相似,因此组合还是有优势的。

5.6.2 构建组合分类器的方法

  • 通过处理训练数据集。比如装袋(bagging)和提升(boosting)
  • 通过处理输入特征。比如随机森林算法
  • 通过处理类标号。比如错误-纠正输出编码(error-correcting output coding)
  • 通过处理学习算法。比如在同一个训练数据集上多次执行算法可能得到不同的模型。
    组合方法对于不稳定的分类器(unstable classifer)比如决策树、基于规则的分类器、人工神经网络 ,训练样本的可变性是分类器误差的主要来源之一。

5.6.3 偏倚(bias)-方差分解

d ( 期 望 误 差 ) = B i a s + V a r i a n c e + N o i s e d(期望误差)=Bias+Variance+Noise d()=Bias+Variance+Noise期望误差是一个分类器误分一个给定样本的概率。一般来说,分类器关于它的决策边界性质所做的假定越强,分类器的偏倚就越大。实际决策边界与平均决策边界之间的差反映了分类器的偏倚,决策边界的可变性反映了分类器的方差。

5.6.4装袋(bagging)

又称自助聚集(boot strap aggregating),是一种根据均匀概率分布从数据集中重复抽样(有放回)的技术。每个自主样本集都和原数据集一样大。一般来说每个自主样本 D i D_i Di大约包含63%的原训练数据。训练过k个分类器后,测试样本被指派到得票最高的类 C ( x ) = arg max ⁡ y ∑ i δ ( C i ( x ) = y ) C^(x)=\argmax_y\sum_i\delta(C_i(x)=y) C(x)=yargmaxiδ(Ci(x)=y)如果参数为真则 δ ( . ) = 1 \delta(.)=1 δ(.)=1,否则等于0
决策树桩(decision stump):他是一个分类器,仅包含一层的二叉决策树,只有一个测试条件 x ≤ k x\le k xk,其中k是使得叶结点熵最小的分裂点。
装袋通过降低基分类器方差改善了泛化误差,而且对于噪声数据,装袋不太受过分拟合的影响。装袋的性能依赖于基分类器的稳定性。如果基分类器不稳定那很好,若是稳定的,则误差主要由偏倚产生,分类器达不到改善的效果。

5.6.5提升

提升是一个迭代过程,用来自适应的改变训练样本的分布,使得基分类器聚焦在那些很难分的样本上。它给每一个训练样本赋一个权值,而且可以在每一轮提升结束时自动的提升权值。权值可以用于

  • 用作抽样分布
  • 基分类器使用权值学习有利于高权值样本的模型

不同的提升算法的差别在于

  • 每轮结束时如何更新权值
  • 如何组合每个分类器的预测
    下面说一个具体的提升例子AdaBoost算法

5.7不平衡类问题

本节将给出一些为处理不平衡类问题而开发的方法。

5.7.1可选度量

在不平衡数据集中,稀有类比多数类更有意义。对于二元分类,稀有类通常记为正类,而多数类被认为是负类。由此我们得到混淆矩阵

  • TP —— f + + f_{++} f++
  • FN —— f + − f_{+-} f+
  • FP —— f − + f_{-+} f+
  • TN —— f − − f_{--} f
    **真正率(true positive rate,TPR)或灵敏度(sensitivity)被定义为模型正确预测的正样本比例 T R P = T P T P + F N = f + + f + + + f − + TRP=\frac{TP}{TP+FN}=\frac{f_{++}}{f_{++}+f_{-+}} TRP=TP+FNTP=f+++f+f++
    同理
    真负率(TNR)或特指度(specificity)**被定义为模型正确预测负样本的比例 T N R = T N T N + F P TNR=\frac{TN}{TN+FP} TNR=TN+FPTN
    假正率(FPR) F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP
    假负率(FNR) F N R = F N T P + F N FNR=\frac{FN}{TP+FN} FNR=TP+FNFN
    召回率®和精度§是两个广泛使用的度量 p = T P T P + F P r = T P T P + F N p=\frac{TP}{TP+FP}\\ \\r=\frac{TP}{TP+FN} p=TP+FPTPr=TP+FNTP
    精度越高,假正错误越低。召回率越高,真正率越高。因此构建一个最大化精度和召回率是分类算法的主要任务之一。
    加 权 准 确 率 = w 1 T P + w 4 T N w 1 T P + w 2 F P + w 3 F N + w 4 T N 加权准确率=\frac{w_1TP+w_4TN}{w_1TP+w_2FP+w_3FN+w_4TN} =w1TP+w2FP+w3FN+w4TNw1TP+w4TN
度量 w 1 w_1 w1 w 2 w_2 w2 w 3 w_3 w3 w 4 w_4 w4
召回率 1 1 0 0
精度 1 0 1 0
F β 值 F_{\beta}值 Fβ β 2 \beta^2 β2+1 β 2 \beta^2 β2 1 0
准确率 1 1 1 1

其中
F β 值 F_{\beta}值 Fβ表示召回率与精度之间的一个度量值

5.7.2 接受者操作特征曲线

接受者操作特征(ROC)曲线是显示分类器真正率和假正率之间折中的一种图形化方法。在一个ROC曲线中,TPR沿y轴绘制,FPR沿x轴绘制。
ROC曲线下方的面积(AUC)提供了一个评价的方法
如果模型是完美的,那么AUC=1
如果模型是随机猜测的,那么AUC=0.5
AUC越大,模型越优。
ROC曲线的绘制是一个连续迭代的过程。

5.7.3代价敏感学习

代价矩阵对讲一个类的记录分类到另一个类的惩罚进行编码。 C ( i , j ) C(i,j) C(i,j)表示把一个i类预测成为j的代价。在不平衡类问题中,不同的错误的代价也是不一样的,严重的错误代价更大。
代价信息可以用来:

  1. 选择用以分类数据的最好的属性
  2. 决定子树是否需要修枝
  3. 处理训练记录的权值
  4. 修改每个叶节点上的决策规则

5.7.4基于抽样的方法

抽样是处理不平衡问题的另一种方法。主要思想是改变实例的分布,从而帮助稀有类在训练数据集中很好地表示。
现有的技术包括,不充分抽样、过分抽样、和两种技术的混合。
考虑一个100个正例1000个负例的记录

  1. 不充分抽样:只取100个负样本的随机抽样和正样本组成训练集。(可以多次进行,覆盖更广)
  2. 过分抽样:把100个正例复制到1000个。(容易受到噪声影响,过拟合等问题)
  3. 混合:对多数类进行不充分抽样,对稀有类进行过分抽样

5.8多类问题

本节给出一些将二类问题推广到多类的方法

  1. 一对其他(1-r)方法:将多类问题分解成K个二类问题。为每一个类yi创建一个二类问题,然后构建一个二元分类器,将属于yi的样本从其他类中分离出来。
  2. 一对一(1-1)方法:构建K(K-1)/2个二类分类器,每个分类器用来区分一对类(yi,yj)。
纠错输出编码(error-correcting output coding,ECOC)

基本思想是借助于代码字向传输信息中增加一些冗余,从而能使得接收方能发现接受信息中的一些错误,而且如果错误量少还可能回复原始信息。
对于多类学习,每个类yi用一个长度n的唯一位串来表示,称为它的代码字。然后训练n个二元分类器,预测每个代码字串的二进位。如果一个类的代码字与二元分类器的海明距离最近,那么这个类就是检验实例的预测类。海明距离是他们的不同二进位的数目。

你可能感兴趣的:(数据挖掘导论学习笔记 第五章 分类算法)