集成学习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 准确率
ACC=TP+TNFP+FN+TP+TN=正确预测的样本数样本总数(1)ACC = \frac{TP+TN}{FP+FN+TP+TN}=\frac{正确预测的样本数}{样本总数} (1)ACC=FP+FN+TP+TNTP+TN=样本总数正确预测的样本数(1)
准确率能清晰反映模型的表现,但当正负样本不平衡时,占比较大的类将成为影响的最主要因素,此时的准确率就失去了公平性。
1.2.2 Precision 精度
Precision=TPTP+FP=真值为1且预测正确的样本数预测为正例的样本数(2)Precision = \frac{TP}{TP+FP}= \frac{真值为1且预测正确的样本数}{预测为正例的样本数} (2)Precision=TP+FPTP=预测为正例的样本数真值为1且预测正确的样本数(2)
TP+FP为预测为正例的所有样本数,精度越大就代表着预测正例正确的可能性越大,即分类器对预测正样本越有把握。综上,精度反映了负样本区分能力。
1.2.3 Recall 召回率
Recall=TPTP+FN=真值为1且预测正确的样本数真值样本数(3)Recall = \frac{TP}{TP+FN}= \frac{真值为1且预测正确的样本数}{真值样本数} (3)Recall=TP+FNTP=真值样本数真值为1且预测正确的样本数(3)
召回率,顾名思义即预测到真值的概率。通常,预测样本数越多,找到真值的概率越大。
1.2.4 F1-score
F1=2PRE×RECPRE+REC,综合衡量精度及召回率(4)F1 = 2\frac{PRE\times REC}{PRE + REC}, 综合衡量精度及召回率 (4)F1=2PRE+RECPRE×REC,综合衡量精度及召回率(4)
及更一般的形式Fβ:F_\beta:Fβ:
Fβ=(1+β2)×PRE×RECβ2×PRE+REC(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>1F_{>1}F>1中REC比PRE的权重值更大,对FβF_\betaFβ贡献更大;反之β<1\beta < 1β<1时, REC比PRE的权重值小,对FβF_\betaFβ贡献小。
1.2.5 ROC曲线与AUC面积
分类任务在测试时,通常会选择设定一个阈值,大于阈值为正例,小于为负例。阈值越小,那么更多的样本会被预测为正例。
ROC曲线:
x−axis:FPR=FPFP+FN(6)x-axis: FPR = \frac{FP}{FP + FN} (6)x−axis:FPR=FP+FNFP(6)
y−axis:TPR=TPTP+FN(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 的计算如下:
AUC=2∣C∣(∣C∣−1)∑i=1∣c∣AUCi,其中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)=11+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(θTx)(10)h_\theta(x) = g(\theta^Tx) (10)hθ(x)=g(θTx)(10)
见式(9)见式(9)见式(9)
所以hθ(x)=11+e−θTx(11)h_\theta(x) = \frac{1}{1 + e^{-\theta^Tx}} (11)hθ(x)=1+e−θTx1(11)
其中xxx是我们的输入, θ\thetaθ 为我们要求取的参数。
在给定xxx和 θ\thetaθ的条件下y=1y=1y=1 的概率,因此,我们假设逻辑回归模型为:
p(y=1∣x)=11+e−θTxp(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)=πkfk(x)∑l=1Kπlfl(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=1Kπlfl(x)=P(X=x){{\sum\limits_{l=1}^K{\pi}_lf_l(x)} = P(X=x)}l=1∑Kπlfl(x)=P(X=x)是一个当样本给定的时候是一个与分类kkk 无关的常数,所以我们的问题可以简化为只需要计算分子 πkfk(x){{\pi}_kf_k(x)}πkfk(x) ,进而比较哪个类别的概率最大就知道属于哪个类别了。即,通过贝叶斯定理计算贝叶斯定理的分子,比较分子最大的那个类别为最终类别。(ps:萌弟大佬的推导过程我全程看得十分懵逼,我实在数学功底太弱了)
2.2.1.2 降维分类的思想理解线性判别分析
基于数据进行分类时,将高维的数据降维至一维,然后使用某个阈值将各个类别分开。下面用图的形式展示

进行分类时的思想简称为:类内方差小,类间方差大,在计算机语言叫“松耦合,高内聚”。
2.2.2 朴素贝叶斯
朴素贝叶斯算法对线性判别分析作进一步的模型简化,它将线性判别分析中的协方差矩阵中的协方差全部变成0,只保留各自特征的方差,也就是朴素贝叶斯假设各个特征之间是不相关的。遵循偏差-方差理论的推导,朴素贝叶斯相比线性判别分析模型进行了简化,故方差小,偏差大。
2.3 决策树
决策树与回归树大致一样,回归问题中,选择分割点的标准是均方误差,分类选择分类错误率。分类错误率就是:此区域内的训练集中非常见类所占的类别,即:
E=1−maxk(p^mk)(13)E = 1-max_k(\hat{p}_{mk}) (13)E=1−maxk(p^mk)(13)
上式中的p^mk\hat{p}_{mk}p^mk代表第m个区域的训练集中第k类所占的比例。但是在大量的事实证明:分类错误率在构建决策树时不够敏感,一般在实际中用如下两个指标代替:
(1) 基尼系数:
G=∑k=1Kp^mk(1−p^mk)(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=1Kp^mklog p^mk(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
本文介绍了分类问题中的关键概念,包括IRIS鸢尾花数据集、准确率、精度、召回率、F1值、ROC曲线等评估指标。探讨了逻辑回归、概率分类(线性判别分析和朴素贝叶斯)、决策树和支持向量机(SVM)等模型。重点解析了各种模型的工作原理和性能衡量标准,并强调了在不同场景下选择合适模型的重要性。
636

被折叠的 条评论
为什么被折叠?



