集成学习task05–分类
0 前言
- 数据集: IRIS鸢尾花数据集
- 度量指标: 准确率、精度、召回率、F1值、ROC曲线
- 模型:逻辑回归、概率分类、决策树、支持向量机SVM、非线性支持向量机
1 分类的度量指标
1.1混淆矩阵
- TP: True Positives, 表示实际为正例且被分类器判定为正例的样本数
- FP: False Positives, 表示实际为负例且被分类器判定为正例的样本数
- FN: False Negatives, 表示实际为正例但被分类器判定为负例的样本数
- TN: True Negatives, 表示实际为负例且被分类器判定为负例的样本数
*tip1: 第一个字母表示划分正确性, T 表示判定正确(True), F表示判定错误(False);第二个字母表示分类器判定结果, P表示判定为正例, N表示判定为负例。
1.2 指标
1.2.1 Accuracy 准确率
A
C
C
=
T
P
+
T
N
F
P
+
F
N
+
T
P
+
T
N
=
正
确
预
测
的
样
本
数
样
本
总
数
(
1
)
ACC = \frac{TP+TN}{FP+FN+TP+TN}=\frac{正确预测的样本数}{样本总数} (1)
ACC=FP+FN+TP+TNTP+TN=样本总数正确预测的样本数(1)
准确率能清晰反映模型的表现,但当正负样本不平衡时,占比较大的类将成为影响的最主要因素,此时的准确率就失去了公平性。
1.2.2 Precision 精度
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
=
真
值
为
1
且
预
测
正
确
的
样
本
数
预
测
为
正
例
的
样
本
数
(
2
)
Precision = \frac{TP}{TP+FP}= \frac{真值为1且预测正确的样本数}{预测为正例的样本数} (2)
Precision=TP+FPTP=预测为正例的样本数真值为1且预测正确的样本数(2)
TP+FP为预测为正例的所有样本数,精度越大就代表着预测正例正确的可能性越大,即分类器对预测正样本越有把握。综上,精度反映了负样本区分能力。
1.2.3 Recall 召回率
R
e
c
a
l
l
=
T
P
T
P
+
F
N
=
真
值
为
1
且
预
测
正
确
的
样
本
数
真
值
样
本
数
(
3
)
Recall = \frac{TP}{TP+FN}= \frac{真值为1且预测正确的样本数}{真值样本数} (3)
Recall=TP+FNTP=真值样本数真值为1且预测正确的样本数(3)
召回率,顾名思义即预测到真值的概率。通常,预测样本数越多,找到真值的概率越大。
1.2.4 F1-score
F
1
=
2
P
R
E
×
R
E
C
P
R
E
+
R
E
C
,
综
合
衡
量
精
度
及
召
回
率
(
4
)
F1 = 2\frac{PRE\times REC}{PRE + REC}, 综合衡量精度及召回率 (4)
F1=2PRE+RECPRE×REC,综合衡量精度及召回率(4)
及更一般的形式
F
β
:
F_\beta:
Fβ:
F
β
=
(
1
+
β
2
)
×
P
R
E
×
R
E
C
β
2
×
P
R
E
+
R
E
C
(
5
)
F_\beta = \frac{(1+\beta^2)\times PRE\times REC}{\beta^2 \times PRE + REC} (5)
Fβ=β2×PRE+REC(1+β2)×PRE×REC(5)
β
\beta
β为PRE、REC的权重比,当
β
=
1
\beta = 1
β=1时,即为F1的形式;当
β
>
1
\beta > 1
β>1时,
F
>
1
F_{>1}
F>1中REC比PRE的权重值更大,对
F
β
F_\beta
Fβ贡献更大;反之
β
<
1
\beta < 1
β<1时, REC比PRE的权重值小,对
F
β
F_\beta
Fβ贡献小。
1.2.5 ROC曲线与AUC面积
分类任务在测试时,通常会选择设定一个阈值,大于阈值为正例,小于为负例。阈值越小,那么更多的样本会被预测为正例。
ROC曲线:
x
−
a
x
i
s
:
F
P
R
=
F
P
F
P
+
F
N
(
6
)
x-axis: FPR = \frac{FP}{FP + FN} (6)
x−axis:FPR=FP+FNFP(6)
y
−
a
x
i
s
:
T
P
R
=
T
P
T
P
+
F
N
(
7
)
y-axis: TPR = \frac{TP}{TP + FN} (7)
y−axis:TPR=TP+FNTP(7)
其中,FPR代表分错样本中将负例分成正例的概率,TPR代表对正样本的找全率。通常减小阈值,TPR会增大,对应FPR也会增大。
在 ROC 曲线中, 有:
- FPR = 0, TPR = 0: 表示将每一个实例都预测为负类
- FPR = 1, TPR = 1:表示将每一个实例都预测为正例
- FPR = 0, TPR = 1:为最优分类点
- 分类器对应的ROC曲线应该尽可能靠近坐标轴的左上角, 而对角线的位置意味着分类器的效果和随机猜测一样的差。
ROC曲线在测试集中的样本分布发生变化的时候能够保持不变。但遗憾的是,很多时候, ROC 曲线并不能清晰的说明哪个分类器的效果更好,反而是 AUC 能够对分类器做出直观的评价。
AUC:Area under Curve
AUC 为ROC 曲线下的面积, 这个面积的数值介于0到1之间, 能够直观的评价出分类器的好坏, AUC的值越大, 分类器效果越好。
- AUC = 1: 完美分类器, 采用该模型,不管设定什么阈值都能得出完美预测(绝大多数时候不存在)
- 0.5 < AUC < 1: 优于随机猜测,分类器好好设定阈值的话,有预测价值
- AUC = 0.5: 跟随机猜测一样,模型没有预测价值
- AUC < 0.5 :比随机猜测还差,但是如果反着预测,就优于随机猜测。
*tip2: 两个模型的AUC 相等并不代表模型的效果相同,见上图。
*tip3:在多分类场景下的 ROC 曲线以及 AUC 值, 此时 ROC 曲线应该有多个, 而AUC 的计算如下:
A
U
C
=
2
∣
C
∣
(
∣
C
∣
−
1
)
∑
i
=
1
∣
c
∣
A
U
C
i
,
其
中
C
表
示
类
别
数
量
(
8
)
AUC = \frac{2}{|C|(|C| - 1) }\sum_{i=1}^{|c|}{AUC}_i , 其中C表示类别数量 (8)
AUC=∣C∣(∣C∣−1)2i=1∑∣c∣AUCi,其中C表示类别数量(8)
1.2.6 P-R曲线
P-R 曲线其横坐标为 Recall, 纵坐标为 Precision。图中A 完全包住了C, 着意味着A 的Precision 与 Recall 都高于C, A优于C。 而对比 A,B, 二者存在交叉的情况,此时采用曲线下面积大小衡量性能,面积越大,性能越好,此处的A优于B。
2.模型
2.1 逻辑回归logistic regression
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。
假设函数(Hypothesis function)
Sigmoid函数,也称为逻辑函数(Logistic function):
g
(
z
)
=
1
1
+
e
−
z
(
9
)
g(z) = \frac{1}{1 + e^{-z}} (9)
g(z)=1+e−z1(9)
sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。
逻辑回归的假设函数形式如下:
h
θ
(
x
)
=
g
(
θ
T
x
)
(
10
)
h_\theta(x) = g(\theta^Tx) (10)
hθ(x)=g(θTx)(10)
见
式
(
9
)
见式(9)
见式(9)
所以
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
(
11
)
h_\theta(x) = \frac{1}{1 + e^{-\theta^Tx}} (11)
hθ(x)=1+e−θTx1(11)
其中
x
x
x是我们的输入,
θ
\theta
θ 为我们要求取的参数。
在给定
x
x
x和
θ
\theta
θ的条件下
y
=
1
y=1
y=1 的概率,因此,我们假设逻辑回归模型为:
p
(
y
=
1
∣
x
)
=
1
1
+
e
−
θ
T
x
p(y = 1|x) = \frac{1}{1+e^{-\theta^Tx}}
p(y=1∣x)=1+e−θTx1
2.2 概率分类模型
2.2.1线性判别分析
2.2.1.1基于贝叶斯公式对线性判别分析的理解
贝叶斯定理:
P
(
Y
=
k
∣
X
=
x
)
=
π
k
f
k
(
x
)
∑
l
=
1
K
π
l
f
l
(
x
)
(
12
)
{P(Y=k|X=x) = \dfrac{{\pi}_kf_k(x)}{\sum\limits_{l=1}^K{\pi}_lf_l(x)}}(12)
P(Y=k∣X=x)=l=1∑Kπlfl(x)πkfk(x)(12)
思路:分母
∑
l
=
1
K
π
l
f
l
(
x
)
=
P
(
X
=
x
)
{{\sum\limits_{l=1}^K{\pi}_lf_l(x)} = P(X=x)}
l=1∑Kπlfl(x)=P(X=x)是一个当样本给定的时候是一个与分类
k
k
k 无关的常数,所以我们的问题可以简化为只需要计算分子
π
k
f
k
(
x
)
{{\pi}_kf_k(x)}
πkfk(x) ,进而比较哪个类别的概率最大就知道属于哪个类别了。即,通过贝叶斯定理计算贝叶斯定理的分子,比较分子最大的那个类别为最终类别。(ps:萌弟大佬的推导过程我全程看得十分懵逼,我实在数学功底太弱了)
2.2.1.2 降维分类的思想理解线性判别分析
基于数据进行分类时,将高维的数据降维至一维,然后使用某个阈值将各个类别分开。下面用图的形式展示
进行分类时的思想简称为:类内方差小,类间方差大,在计算机语言叫“松耦合,高内聚”。
2.2.2 朴素贝叶斯
朴素贝叶斯算法对线性判别分析作进一步的模型简化,它将线性判别分析中的协方差矩阵中的协方差全部变成0,只保留各自特征的方差,也就是朴素贝叶斯假设各个特征之间是不相关的。遵循偏差-方差理论的推导,朴素贝叶斯相比线性判别分析模型进行了简化,故方差小,偏差大。
2.3 决策树
决策树与回归树大致一样,回归问题中,选择分割点的标准是均方误差,分类选择分类错误率。分类错误率就是:此区域内的训练集中非常见类所占的类别,即:
E
=
1
−
m
a
x
k
(
p
^
m
k
)
(
13
)
E = 1-max_k(\hat{p}_{mk}) (13)
E=1−maxk(p^mk)(13)
上式中的
p
^
m
k
\hat{p}_{mk}
p^mk代表第m个区域的训练集中第k类所占的比例。但是在大量的事实证明:分类错误率在构建决策树时不够敏感,一般在实际中用如下两个指标代替:
(1) 基尼系数:
G
=
∑
k
=
1
K
p
^
m
k
(
1
−
p
^
m
k
)
(
14
)
G = \sum\limits_{k=1}^{K} \hat{p}_{mk}(1-\hat{p}_{mk}) (14)
G=k=1∑Kp^mk(1−p^mk)(14)
由基尼系数作为指标得到的分类树叫做:CART。
(2) 交叉熵:
D
=
−
∑
k
=
1
K
p
^
m
k
l
o
g
p
^
m
k
(
15
)
D = -\sum\limits_{k=1}^{K} \hat{p}_{mk}log\;\hat{p}_{mk} (15)
D=−k=1∑Kp^mklogp^mk(15)
事实证明,基尼系数和交叉熵在数值上时很接近的。
决策树分类算法的完整步骤:
a. 选择最优切分特征j以及该特征上的最优点s:
遍历特征j以及固定j后遍历切分点s,选择使得基尼系数或者交叉熵最小的(j,s)
b. 按照(j,s)分裂特征空间,每个区域内的类别为该区域内样本比例最多的类别。
c. 继续调用步骤1,2直到满足停止条件,就是每个区域的样本数小于等于5。
d. 将特征空间划分为J个不同的区域,生成分类树。
2.4 支持向量机SVM:
大名鼎鼎的支持向量机SVM是20世纪90年代在计算机界发展起来的一种分类算法,在许多问题中都被证明有较好的效果,被认为是适应性最广的算法之一。
支持向量机的基本原理非常简单,如图所视,白色和蓝色的点各为一类,我们的目标是找到一个分割平面将两个类别分开。通常来说,如果数据本身是线性可分的,那么事实上存在无数个这样的超平面。这是因为给定一个分割平面稍微上移下移或旋转这个超平面,只要不接触这些观测点,仍然可以将数据分开。一个很自然的想法就是找到最大间隔超平面,即找到一个分割平面距离最近的观测点最远。
推导没看懂,立个flag,看懂后再补。。。。。
2.5 非线性支持向量机
那我们应该如何处理生活中更多遇到的非线性问题呢?答案就是将数据投影至更加高的维度!
推导以后看懂再补,菜鸡落泪!!!!
参考:
[1].https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning
[2].https://zhuanlan.zhihu.com/p/69101372
[3].https://zhuanlan.zhihu.com/p/28408516