Supervised learning for classification
- Linear classification
- Support vector machines
- Multiclass classification
- Classification performance evaluation
Supervised learning for regression
- Linear regression
- Least-squares regression
- Regression performance evaluation
可分性 Separability
可分类 Separable classes:
- 如果存在一个判别子空间(discrimination subspace)可以将特征空间分开,使得每个区域内只有来自一个类的对象,那么这个识别任务就称为具有可分类。
线性可分 Linearly separable:
- 如果对象类可以使用超平面(hyperplane)作为判别子空间将其分开,那么这个特征空间就称为线性可分。
两个图示:
- 左图显示的是线性可分的情况,绿点和蓝点通过一条直线(超平面)被分开。
- 右图显示的是非线性可分的情况,绿点围绕着蓝点,无法用一条直线(超平面)分开。
线性分类器Linear Classifier
给定一个包含N个观测值的训练集:
- {(xi,yi)},其中 xi∈Rd,yi∈{−1,1},i=1,…,N。
二元分类问题:
- 可以通过一个分离函数 f(x) 使用这些数据来建模,满足以下条件:
f(xi)={>0<0if yi=+1if yi=−1
因此,在这种方法中:
yif(xi)>0
这意味着在二元分类问题中,训练集中的每个样本 (xi,yi) 被分离函数 f(x) 正确分类,即对于每个样本 xi,如果其标签 yi 为正(+1),则 f(xi) 的值为正;如果其标签 yi 为负(-1),则 f(xi) 的值为负。这样确保了 yif(xi)>0。
线性分类器的形式:
f(x)=WTx+b=w1x1+w2x2+⋯+wdxd+b
其中,W 是权重向量,x 是特征向量,b 是偏置项。
对应关系:
- 在二维空间中,对应一条直线。
- 在三维空间中,对应一个平面。
- 在n维空间中,对应一个超平面。
我们使用训练数据来学习权重 (W) 和偏置 (b)。
xi 是特征。
两个图示:
- 左图展示了二维空间中超平面作为一条直线,分隔了红色和绿色的点。
- 右图展示了三维空间中超平面作为一个平面,分隔了红色和绿色的点。
支持向量机 Support Vector Machines, SVM
最大化间隔:
- 最大化间隔是指到最近样本的距离,这会导致一个优化问题。
最接近超平面的样本是支持向量。
两个图示:
- 左图展示了较小的间隔,表示支持向量(蓝点)到分隔超平面的距离较小。
- 右图展示了较大的间隔,表示支持向量到分隔超平面的距离较大。
SVM 的目标是找到一个超平面,使得两类样本之间的间隔最大化,从而提高分类的准确性和鲁棒性。最接近超平面的样本,即支持向量,起到了关键的作用。
目标
- 最大化超平面到最近样本的距离。
- 确保正类和负类样本在超平面的两侧。
概念定义
超平面(高维空间中的)由线性模型定义:
- 公式:wTx+b=0
- 图示说明了一个超平面以及法向量 w 在高维空间中的位置。
点到超平面的距离:
- 公式:d=∥w∥2∣wTx′+b∣
- 这里 x′ 是要计算距离的点,w 是超平面的法向量,b 是偏置项,∥w∥2 是 w 的二范数。
- 图示说明了点 P 到超平面 Q 的距离,以及法向量 w 和角度 θ。
这些概念是理解SVM如何工作的基础,通过定义超平面来分隔不同类别的点,并计算点到超平面的距离来确定分类边界。
优化问题
线性SVM(硬间隔SVM)的原始优化问题:
- 目标是最小化以下函数:
w,bmin21∥w∥2
约束条件是:
yi(wTxi+b)≥1,∀i
这里,∥w∥ 表示权重向量的二范数,yi 表示训练集中样本 i 的标签,xi 表示样本 i 的特征向量。
决策规则
测试中的决策规则:
- 如果 wTx+b>0,则预测标签 y^=1。
- 如果 wTx+b<0,则预测标签 y^=−1。
为什么:
- 通过最大化最小间隔来优化分类器的决策边界,从而在训练集中找到最佳的分隔超平面。
硬间隔线性支持向量机 Hard-margin linear SVM
硬间隔线性SVM的优化问题:
- 目标是最小化以下函数:
w,bmin21∥w∥22
约束条件是:
yi(wTxi+b)≥1,∀i
间隔(Margin):
- 间隔 ρ 定义为:
ρ=∥w∥21
- 所有支持向量满足以下条件:
yi(wTxi+b)=1
二次规划优化问题:
- 这是一个凸优化问题,可以使用拉格朗日方法求解其对偶形式。
硬间隔SVM不允许任何样本的误分类:
- 硬间隔SVM严格要求所有训练样本都被正确分类,不能有任何误分类。
图示中展示了绿色和蓝色样本点在分类超平面两侧分布,红色圆圈表示支持向量。支持向量是位于间隔边界上的样本点,它们对分类超平面的最终位置起到决定性作用。
软间隔支持向量机 Soft Margin Support Vector Machines
硬间隔SVM假设类是线性可分的,但如果可分性假设不成立怎么办?
- 在硬间隔SVM中,假设所有类是线性可分的。但在实际应用中,样本可能并不是完全线性可分的。
引入松弛变量 (\xi_i) 以允许实例的错误分类:
- ξi 表示样本 xi 到对应类别间隔的距离,如果在间隔的错误一侧则为正,否则为零。
- 公式解释了如何计算 ξi,图示展示了一些样本点位于间隔的错误一侧,导致 ξi>0。
图示说明了:
- 红色和蓝色的样本点,其中一些点在间隔的错误一侧。
- ξi 变量用来表示这些点到分类边界的距离,允许一定程度的错误分类,以便在实际应用中处理不可完全分离的情况。
软间隔SVM通过引入松弛变量,使得分类器可以在保证分类准确性的同时,允许一定的错误分类,从而提高模型的鲁棒性和适应性。
优化问题
当类是线性可分时,我们有:
yi(wTxi+b)≥1
但如果我们得到一些数据违反了这个松弛值:
yi(wTxi+b)≥1−ξi且ξi≥0
这里,ξi 是松弛变量,用来允许一定程度的误分类。
所以,所有数据的总违反值是 ∑iξi:
现在我们优化以下目标函数:
w,b,{ξi}min21∥w∥22+Ci∑ξi
约束条件是:
yi(wTxi+b)≥1−ξi,∀i
这个优化问题的目标是最小化权重向量的范数和松弛变量的加权和。参数 C 控制误分类的惩罚程度。
软间隔SVM允许一定程度的误分类,通过引入松弛变量和惩罚参数 C 来处理现实世界中不可完全分离的数据,提高模型的泛化能力。
特点
软间隔SVM能够更好地处理噪声数据:
- 软间隔SVM允许一定程度的错误分类,从而在处理噪声数据时表现更好。
较小的 C:
- 对误分类样本有更大的容忍度,从而获得更大的间隔。
- 这意味着模型更注重间隔的大小,而不是每个样本的正确分类。
较大的 C:
- 更加关注避免错误分类,代价是较小的间隔。
- 这意味着模型更注重每个样本的正确分类,而不是间隔的大小。
C 趋向于无穷大意味着回到硬间隔SVM:
- 当 C 无限大时,模型变回硬间隔SVM,不允许任何误分类。
仍然是一个二次规划优化问题:
- 软间隔SVM的优化问题仍然是一个二次规划问题,需要求解一个包含约束条件的二次目标函数。
软间隔SVM通过引入松弛变量和惩罚参数 C,在允许一定错误分类的情况下,找到一个较好的分类边界,从而提高模型在实际应用中的表现。
非线性支持向量机 Nonlinear Support Vector Machines
为了生成非线性决策边界,我们可以将特征映射到新的特征空间,在这个空间中类是线性可分的,然后在这个空间中应用SVM。
- 左侧图示展示了原始特征空间中非线性可分的样本点。
- 通过核函数(kernel),将这些样本点映射到高维空间,使得在这个高维空间中样本点变得线性可分。
特征映射到高维空间可以通过使用核函数来完成,这降低了优化问题的复杂性。
- 右侧图示展示了通过核函数映射后的高维空间中的决策面(Decision surface)。
核函数是一种技巧,用于将低维空间中的非线性问题转换为高维空间中的线性问题。常用的核函数包括线性核函数、多项式核函数、高斯核函数(RBF核)等。通过核函数,SVM可以处理非线性分类问题,增强模型的泛化能力。
优缺点
优点(Pros):
- 在高维特征空间中非常有效:
- 当特征数量大于训练数据量时依然有效:
- 当特征维数高于样本数量时,SVM依然可以有效工作。
- 当类别是(良好)可分时,SVM是最好的算法之一:
- 当数据稀疏时表现很好:
- 通过核技巧(kernel trick)可以扩展到非线性分类:
缺点(Cons):
- 对于大数据集处理时间更长:
- 对于重叠的类别,性能不好:
- 当不同类别之间有大量重叠时,SVM的分类效果可能不佳。
- 需要超参数调优以实现足够的泛化能力:
- SVM模型的性能对超参数敏感,需要进行超参数调优以获得最佳结果。
多类分类 Multiclass Classification
如果有两个以上的类别,我们必须构建一个多类分类器。
有些方法可以直接用于多类分类:
- K近邻(K-nearest neighbours)
- 决策树(Decision trees)
- 贝叶斯技术(Bayesian techniques)
对于那些不能直接应用于多类问题的方法,我们可以通过构建多个二分类器来转换它们。
用于多类分类的两种可能技术:
- 一对多(One versus rest):
- 为每个类别构建一个分类器,将该类别与其余类别区分开。测试样本将分配给置信度最高的类别。
- 图示左侧展示了这一方法:每个类别都有一条决策边界,最终的分类结果基于最高的置信度得分。
- 一对一(One versus one):
- 为每对类别构建一个分类器,并将测试样本分配给预测次数最多的类别。
- 图示右侧展示了这一方法:每两个类别之间都有一条决策边界,最终的分类结果基于预测次数最多的类别。
这些方法允许我们将复杂的多类分类问题分解为更简单的二分类问题,便于应用和优化。
分类错误评估 Evaluation of Classification Error
-
错误率(Error rate):衡量系统解决其设计问题的好坏程度。
-
拒绝类(Reject class):用于无法归入已知类别的对象的通用类。
-
分类错误(Classification error):当分类器将一个输入对象分类为类别 Ci 而实际类别是 Cj 时,即 i=j,且 Ci=Cr(拒绝类),分类器就犯了分类错误。
-
性能(Performance):性能由错误和拒绝的数量共同决定。如果将所有输入都分类为拒绝类,系统虽然没有错误,但却是无用的。
-
经验错误率(Empirical error rate):在独立测试数据上发生的错误数量除以尝试分类的总次数。
-
经验拒绝率(Empirical reject rate):在独立测试数据上发生的拒绝数量除以尝试分类的总次数。
-
独立测试数据(Independent test data):测试数据集中的样本对象,其真实类别(标签)已知,包括拒绝类中的对象,这些数据未在特征提取和分类算法的设计中使用。
-
用于训练和测试的样本应具有代表性(Samples used for training and testing should be representative):可用数据被分割,例如80%用于训练,20%用于测试。
这张图片讨论了二类分类问题中的两种错误类型:错误报警(False Alarms)和错误拒绝(False Dismissals)。以下是具体内容的翻译和解释:
错误报警和错误拒绝 False Alarms and False Dismissals
在二类分类问题中,这两种可能的错误类型有特殊意义,并且是不对称的。
例如,在医疗诊断中:
- 如果患者没有疾病,但系统错误地判断他们有病,那么这个错误是错误报警(false alarm)或假阳性(false positive),也称为第一类错误(type I error)。
- 如果患者确实有疾病,但系统错误地判断他们没有病,那么这个错误是错误拒绝(false dismissal)或假阴性(false negative),也称为第二类错误(type II error)。
这两种错误的后果和成本可能非常不同:
- 两者都有不良后果,但假阴性通常更具灾难性。
- 因此,目标是尽量减少假阴性,可能会以增加假阳性为代价。
- 两种错误的最佳/可接受的平衡取决于具体应用。
图示说明了不同类型的分类结果,包括真实阳性(true positive)、假阳性(false positive)、真实阴性(true negative)和假阴性(false negative)。
接收者操作特征曲线 Receiver Operating Curve, ROC
二分类问题:
使用阈值进行分类:
- 对 p1 使用不同的阈值进行分类,可以得到不同的结果。
- 这些结果对应于整个数据集上的不同的假阳性率和真阴性率。
通过应用不同的阈值,可以得到ROC曲线:
ROC曲线将假阳性率与真阳性率联系起来:
- 通过绘制真阳性率与假阳性率(错误报警率)的关系来评估分类器性能。
ROC曲线图:
- 横轴表示假阳性率(False Positive Rate),纵轴表示真阳性率(True Positive Rate)。
- 图中展示了一条ROC曲线,显示了在不同阈值下假阳性率与真阳性率的关系。
分类结果的解释:
- 图表中的表格展示了不同分类结果的含义:
- 正确检测(无错误):真实为癌症,分类为癌症。
- 错误报警(错误):真实为无癌症,分类为癌症。
- 错误拒绝(错误):真实为癌症,分类为无癌症。
- 正确拒绝(无错误):真实为无癌症,分类为无癌症。
ROC数据分析
一般情况下,当尝试正确检测更高比例的已知对象时,错误报警(false alarms)会增加:
- 这意味着在提高真阳性率的同时,假阳性率也可能会上升。
ROC曲线下面积(Area Under the ROC, AUC或AUROC)总结了整体性能:
- ROC曲线下面积是一个衡量分类器整体性能的指标。AUC值越高,分类器的性能越好。
如何基于ROC评估分类器的质量?
- 通过分析ROC曲线及其下面积(AUC),可以评估分类器的质量:
- 理想的分类器的ROC曲线会尽可能靠近左上角,这表示高真阳性率和低假阳性率。
- AUC值在0.5到1之间,值越接近1表示分类器性能越好。
混淆矩阵 Confusion Matrix
矩阵的元素 (i,j) 记录了类别 i 的对象被分类为类别 j 的次数:
- 这是一个方阵,其中行表示真实类别,列表示预测类别。
通常用于报告分类实验的结果:
对角线元素表示成功分类:
高的非对角线元素表示类别间的混淆:
- 非对角线上的数值表示分类错误的数量,高数值表示分类器在这些类别之间存在混淆。
示例:手写数字识别 Handwritten digits recognition
如图展示了一个手写数字识别的混淆矩阵:
- 矩阵中的数值展示了每个数字在不同类别上的分类结果。
- 例如,数字“0”被正确分类为“0”的次数是97次,被误分类为“8”的次数是1次。
- 通过观察混淆矩阵,可以看出哪些数字容易被误分类,以及分类器在不同类别上的性能。
二分类混淆矩阵(Binary Confusion Matrix)
混淆矩阵用于二分类问题:表示实际类别和预测类别之间的对应关系。
混淆矩阵的结构:
-
实际类别(Actual):
-
预测类别(Prediction):
| Prediction P | Prediction N |
---|
Actual P | # 真阳性(True Positives, TP) | # 假阴性(False Negatives, FN) |
Actual N | # 假阳性(False Positives, FP) | # 真阴性(True Negatives, TN) |
准确率(Accuracy)的计算:
- 公式:
Accuracy=TP+TN+FP+FNTP+TN
- TP:真阳性(正确地预测为正类的数量)
- TN:真阴性(正确地预测为负类的数量)
- FP:假阳性(错误地预测为正类的数量)
- FN:假阴性(错误地预测为负类的数量)
准确率表示分类器正确预测的比例,是评估分类器性能的一个重要指标。
精度 vs 召回 Precision versus Recall
精度(Precision)& 准确性(Correctness)
- 定义:选中元素中相关元素的比例。
- 公式:
Precision=TP+FPTP
- TP:真阳性(True Positives)
- FP:假阳性(False Positives)
召回率(Recall)& 灵敏度(Sensitivity)& 完整性(Completeness)
- 定义:相关元素中被选中的比例。
- 公式:
Recall=TP+FNTP
- TP:真阳性(True Positives)
- FN:假阴性(False Negatives)
F1分数(F1 Score)
- 定义:精度和召回率的调和平均数。
- 公式:
F1=Precision+Recall2×Precision×Recall
回归 Regression
假设我们有一个包含 N 个观测值的训练集:
- 训练集形式为 {(xi,yi)},其中 xi∈Rd,yi∈R, i=1,...,N。
训练过程是从训练数据中学习函数 f(x),使得:
yi=f(xi)
- 目标是找到一个函数 f(x) 来表示输入 xi 与输出 yi 之间的关系。
但是这里输出变量 y 是一个连续值:
- 与分类任务不同,回归任务的输出是一个连续的实数值。
- 图中给出了一个一维回归的示例( (d = 1)),显示了数据点和拟合的回归曲线。
线性回归
线性回归假设输出与特征之间存在线性关系:
-
公式:
f(x)=w0+w1x1+w2x2+⋯+wdxd
- 其中,x 表示特征向量,形式为 [1,x1,x2,…,xd]。
- W 表示权重向量,形式为 [w0,w1,…,wd]T。
-
简化公式:
如何找到最佳拟合线?
最基本的估计方法是最小二乘法拟合(Least Squares Fitting):
- 最小化误差平方和,即:
Wmini=1∑N(yi−f(xi))2
- 通过最小化这个误差函数,可以找到最佳拟合的权重向量 W。
- 图示展示了一个一维线性回归的例子,其中蓝点表示数据点,黑线表示拟合的线性回归线。
这张图片详细介绍了最小二乘回归(Least Squares Regression)的概念和方法。以下是具体内容的翻译和解释:
最小二乘回归 Least Squares Regression
核心思想是最小化残差平方和(RSS,Residual Sum of Squares):
-
RSS定义为:
RSS(W)=i=1∑N[yi−f(xi)]2=(Y−XW)T(Y−XW)
-
其中,
- Y=[y1,y2,…,yN]T 表示所有样本的真实值。
- X=[x1,x2,…,xN]T 表示所有样本的特征。
-
如何找到最佳拟合?
- 通过最小化 RSS 来找到最佳权重向量 W^:
W^=argWminRSS(W)
-
RSS 是一个二次函数,可以对 W 求导:
- RSS 是一个关于 W 的二次函数,这意味着我们可以通过求导并设置导数为零来找到使 RSS 最小的 W。
- 图中展示了一个一维回归的例子,其中蓝点表示数据点,黑线表示拟合的线性回归线,红色垂线表示每个数据点的残差(即预测值与真实值之间的差距)。
寻找最优权重 W
RSS 对 W 求导:
- 对 W 求 RSS 的一阶导数:
∂W∂RSS=−2XT(Y−XW)
- 对 W 求 RSS 的二阶导数:
∂W∂WT∂2RSS=2XTX
假设 X 是满秩矩阵:
- 这意味着 XTX 是正定矩阵,因此我们有一个凸函数,函数存在最小值。
设置导数为零以找到最小值:
- 令一阶导数为零,求解:
∂W∂RSS=0⟹XT(Y−XW)=0
- 解得最优权重 W^:
W^=(XTX)−1XTY
线性回归 例子
例1
对于一个特征,我们得到:
W=(XTX)−1XTY=[−1.80.0635]
剩余平方和(RSS)计算如下:
RSS(W)=i=1∑N[yi−f(xi)]2=(Y−XW)T(Y−XW)=0.9438
图示展示了单个特征(例如长度)与输出(例如重量)之间的关系。
对于两个特征,我们重复相同的过程,并更新 X 矩阵:
X=⎣⎡11⋮1100102⋮974035⋮39⎦⎤
计算得到的权重矩阵 W 为:
W=⎣⎡−2.1250.05910.0194⎦⎤
相应的剩余平方和(RSS)计算为:
RSS(W)=0.9077
图示展示了两个特征与输出之间的关系。红线表示多特征回归模型的拟合结果。
回归评价指标 Regression Evaluation Metrics
均方根误差 (Root Mean Square Error, RMSE)
RMSE=N1i=1∑N(yi−y^i)2
平均绝对误差 (Mean Absolute Error, MAE)
- 表示预测值与观测值之间绝对差值的平均值
- 计算公式:
MAE=N1i=1∑N∣yi−y^i∣
相关信息
- RMSE 主要惩罚大差异,因此对于大偏差的预测值更加敏感。
- MAE 反映的是所有预测误差的平均水平,对大偏差的影响较小。
通常,我们希望 RMSE 和 MAE 的值越小越好,这意味着模型预测的准确性越高。
R平方 (R2)
R2=1−∑i=1N(yi−yˉ)2∑i=1N(yi−y^i)2
调整后的R平方 (Adjusted R2):
- 表示所选择的特征如何解释输出变量,并调整特征数量的影响。
- 公式:
Radj2=1−[N−d−1(1−R2)(N−1)]
- 其中,N 是样本数量,d 是特征的数量。
相关信息
通常,我们希望R平方和调整后的R平方值越大越好。
特征标准化 - 预处理 Normalization on features - preprocessing
目标:将数值的尺度转换为一个统一的尺度。
常用的技术:
交叉验证 Cross Validation
交叉验证的目标:
- 理想情况下,训练好的模型在新的(未见过的)数据上也应表现良好。
- 这意味着模型不应对训练数据欠拟合或过拟合。
- 交叉验证可以用于超参数调优。
交叉验证(CV) 是一种评估模型在所有数据上性能的技术:
图示详细展示了K折交叉验证的过程,每次迭代中不同的折叠被用作测试数据,其余的折叠用于训练。
- 交叉验证可以用于超参数调优(或模型选择):
- 留出一个测试集。
- 对其余数据进行交叉验证,使用训练集和验证集。
- 测试集不能用于选择超参数。
具体步骤:
将所有数据分为训练数据和测试数据。
对训练数据进行K折交叉验证。
- 数据被分为K个子集(折叠)。
- 每次迭代中,保留一个折叠用于验证,其余的用于训练。
- 例如,在5折交叉验证中,数据被分为5个子集,每次迭代中选择一个子集作为验证集,其余4个子集作为训练集。
经过K次迭代后,选择性能最优的超参数。
最终评估模型时,使用留出的测试数据进行验证。
图示展示了这种方法的具体过程:数据被分为训练数据和测试数据,训练数据被进一步分为多个折叠(Fold),每次迭代中不同的折叠被用作验证集。最终评估时,使用测试数据进行模型验证。
考试例题
Which one of the following statements is correct for pattern recognition?
A. Pattern recognition is defined as the process of model training on a training dataset and then testing on an independent test set.
B. The dimension of feature vectors should be smaller than the number of training samples in order to avoid the overfitting problem.
C. The simple kNN classifier needs homogeneous feature types and scales so that the classification performance can be better.
D. SVM is a powerful classifier that can separate classes even when the feature space exhibits significant overlaps between classes.
相关信息
拿不准选项,A相对来说错的比较明显因为它定义太狭隘了。我更倾向于选B。