Advertisement

从零开始学人工智能--统计学习:统计学习基础知识

阅读量:

统计学习基础知识

文章目录

统计学习基础知识

  1. 统计学习种类

1.1 监督学习

1.1.1 分类问题

1.1.2 回归问题

1.2 非监督学习

  1. 统计学习中的基本概念

2.1 统计学习三要素:模型,策略,算法

2.2 欠拟合和过拟合

2.3 如何避免过拟合

2.3.1 从模型出发(交叉验证,AIC, BIC)

2.3.2 从策略出发(正则化)

2.3.3 从寻优出发(Early Stopping)

2.3.4 从数据出发(增加数据集)

2.4 过拟合产生的原因

2.5 最大似然估计和贝叶斯估计

2.5.1 贝叶斯定理

2.5.2 最大似然

2.5.3 贝叶斯估计

  1. 线性回归

3.1 经典线性回归

3.2 岭回归(ridge regression)

3.3 lasso回归和ElasticNet

  1. 线性分类

4.1 感知机

4.2 逻辑回归(logistic regression)

4.3 Softmax回归

4.4 广义线性模型

4.5 从另一个角度看逻辑回归

4.6 生成模型和判别模型

4.7 分类器评价标准

目前我们启动了对统计学习系列课程的学习项目,请大家跟随我们的脚步随后介绍一下统计学习的基础知识

  1. 统计学习种类

统计学方法通常划分为两大类:一种是有指导性的预测性的方法(supervised methods),另一种是没有指导性的或描述性的方法(unsupervised methods)。由于其在实际应用中的广泛适用性较高,则倾向于将研究重点放在有指导性的或预测性的方法上。

1.1 监督学习

监督学习的目标是从一个输入输出对的数据集D={(x_i,y_i)}_{i=1}^N中(训练集),通过学习一个从输入特征x到输出标签y的函数关系f(x)=y。简而言之,在这种情况下,每个输入样本x_i可以被视为一个多维数据样本(如一个人口统计数据),而复杂的场景下则可能涉及图像、文本、邮件或时间序列等多样的输入形式。对于每个样本来说,在简单情况下它可能是一个简单的数值表示(如一个人的身高),而在复杂情况下则可能代表更丰富的内容(如一段文字)。当这些输出值是连续值时,则该学习任务被称为回归问题;如果这些输出值是离散类别,则该学习任务被称为分类问题。

1.1.1 分类问题

分类问题是将输出限定为整数集合的形式\{1,\ 2,\ 3,\ \dots,\ C\}中的某个元素,在这种情况下变量y满足y∈\{1,\ 2,\ 3,\ \dots,\ C\}的关系;其中当变量C等于2时属于二元分类问题;而当变量C大于2时则涉及多项分类的情形。

例如:

这是一个二分类任务,在左边部分采用形象化的展示方式具体来说是在方框中展示了训练集的数据集结构而在右边部分则通过表格的形式展示了同样的数据集结构这些数据具有丰富的特征属性包括形状和颜色其中一些组合被归类为'yes'类别另一些组合则被归类为'no'类别为了推断一个新的蓝色月亮形状具有黄环特征以及蓝箭头标志的数据点其所属类别(并考察模型泛化能力)

概率描述的必要性

由于在训练集中未见的新月(蓝),以及环绕物(黄)和指示符号(蓝)的缘故,在对它们所属类别进行归类时存在明显不确定性。因此需要借助概率理论来量化这种不确定性的程度。

以条件概率p(y|x,D,M)的形式描述输出y的概率分布中,
其中xx代表新的输入数据,
DD表示训练数据集,
MM代表选定的模型。
例如,在所述案例中,
有:

P(yes|\text{蓝月}, D, M) + P(no|\text{蓝月}, D, M) = 1

通常情况下,
由于DM均为固定值,
因此在这种情况下的条件概率可简化表示为p(y|x)

基于输出条件概率p(y|x),通常采用最大值猜测作为新输入的推断过程的输出结果\hat{y} = \argmax_y p(y|x)。

\hat{y}=\hat{f}(x)=\mathop{\arg\max}_{c=1,2,…,C}p(y=c|x)y​=f​(x)=argmaxc=1,2,…,C​p(y=c∣x)

这对应着最可能的类别标签,也叫作p(y|x)p(y∣x)的众数。

一些实际应用

文本分类

xx被表示为一种结构化的文本形式。在文本分类任务中涉及计算条件概率p(y=c|x),特别地,在垃圾邮件过滤中这一过程具有重要意义。其中变量y取值为1时对应垃圾邮件样本,取值为0时对应正常邮件样本。

大多数分类学习方法都假设输入向量具有固定的长度。然而,在实际应用中我们常需处理变长文档。因此可以使用 bag of words 模型对其进行表征。其基本思路在于记录每个词项是否出现在对应的文档中(即 x_{ij}=1),从而将训练集转化为一个二元共现矩阵,在此矩阵基础上可实施多种分类技术

图片分类

图像与文本均展现出明显的局部特性,在深入挖掘这些特性后发展起来的算法架构被称为卷积神经网络与循环神经网络;这两种架构在一定程度上促进了人工智能从传统的统计学习方法向深度学习领域的快速发展

1.1.2 回归问题

分类问题中的预测结果yy落在连续区间内,在推断阶段计算后验概率分布的均值E(y|x)。其应用涵盖多个领域。

预测某只股票第二天的最高股价

预测某篇文章接下去1小时的点击次数

预测一个机器人手臂在空中的位置

预测某个医院科室接下去一个月的就诊人数

回归问题与分类问题之间的主要差别不在于输出结果是否为离散或连续(尽管就诊人数在某种程度上可被视为一个多类问题),而在于它们对输出结果的概率分布所作的不同假设;关于这一点我们将会在后续内容中进行详细探讨

1.2 非监督学习

非监督学习仅凭输入数据xx而无需输出yy,其核心目标在于探索xx中的有价值的信息,并通过这些信息实现知识的自主获取与构建。具体而言,在非监督学习中常用的分析方法包括聚类分析、主成分分析法以及关联规则挖掘等技术。以聚类分析为例:在无外部指导的情况下(即无人教导),学习者会通过自身的观察与比较来建立对不同类别事物的理解——例如,在区分家禽中的鸡与鸭时(而不是笼统地将家禽分为鸡鸭和其他类别),通过观察它们的身体特征和行为特点(如鸡通常有两条腿且善于飞行),从而能够识别出并区分出它们,并明确判断每只动物的身份(即知道这是鸡还是鸭)。这种情况下就实现了对两类事物的分类能力培养(属于监督学习范畴)。然而,在完全无指导的情况下(即没有任何人教导),若观察者仅能识别出鸡与鸭之间存在的本质区别(即两者并非同类),则说明具备了一定的知识基础(属于无监督学习范畴)。

聚类主要致力于实现这一目标。根据数据的特征, 将其划分为若干互不相交的子群(其中每一个这样的子群被称作一个簇)。通过这种分类, 这些簇可能对应于某些潜在的概念, 然而, 在人类看来还需要对这些概念进行归纳并加以定义

聚类可用于识别数据的潜在特征;除了还可以用于其他学习任务的前提条件之外;例如市场分割的应用;当你在数据库中存储了大量客户的详细信息时;而你希望根据客户的类型进行分组;以便对不同类型的客户分别销售产品或者分别提供更适合的服务。

聚类示意:

  1. 统计学习中的基本概念

让我们看看一个简单的案例,曲线拟合:

现有样本以上是我们所拥有的数据集。每个样本都是通过将函数y=sin(2πx)叠加高斯噪声生成的。

现在考虑一个关于xx的多项式拟合上述蓝颜色的点:

f(x,w)=w_0+w_1x+w_2x2+…+w_MxM=\sum_jw_jx^jf(x,w)=w0​+w1​x+w2​x2+…+wM​xM=j∑​wj​xj

尽管f(x, w)作为关于x的一个非线性函数,在其变量设置上表现出高度复杂性和多样性;然而在参数空间中表现为严格的可加性和叠加特性。因此这类模型被正式定义为具有可加性的条件下的局部近似方法。

可以通过最小化f(x,w)与yy之间的差距来求解参数ww;其中一种常见的方法是采用误差平方和作为损失函数。

E(w)=\frac12\sum_n{f(x_n, w)-y_n}^2E(w)=21​n∑​{f(xn​,w)−yn​}2

由于E(\mathbf{w})是一个关于\mathbf{w}^2的二次函数, 因此它的导数是一个关于\mathbf{w}的一阶多项式, 该二次函数在其定义域内取得唯一最小值, 对于样本数量较少的情况, 可以直接通过最小二乘法获得解析解, 而对于样本数量较大的情况, 则通常采用梯度下降法来逼近这个最优解\hat{\mathbf{w}}$

2.1 统计学习三要素:模型,策略,算法

模型: 在数据建模问题中,线性函数f(x,w)就是所采用的模型;除此之外,还可以考虑其他的线性模型或者非线性模型;选择合适的模型是应用统计学习算法的第一步

策略如下:获得模型后,在统计学习过程中我们首先要确定一个准则是指导我们从所有可能的模型中选择最优的那个。在之前的讨论中涉及到了这个问题中的一个典型例子,在该问题中我们探讨了如何通过最小化误差平方和来优化模型参数w。其中误差平方和E(w)=∑(y_i - f(x_i;w))²就是一个常用的准则是用来衡量模型与数据之间的拟合程度(同时也是本策略中的一个重要组成部分)。此外还有其他几种不同的损失函数如0-1损失、绝对值损失以及对数损失等可供选择作为评估模型性能的标准

算法:基于一定的准绳, 我们需要探讨在该准则约束下如何寻求参数ww使得其最小化. 最常用的方法就是梯度下降方法或其他基于类似原理的方法(我认为这一步骤应当被统称为优化过程, 算法作为一个较为广泛的应用领域)

2.2 欠拟合和过拟合

这些模型、策略与算法均旨在处理模型的学习环节(即拟合环节)。然而,在统计学习中核心目标在于预测那些未被包含在训练数据中的样本(即泛化能力)。这引出了一个关于训练数据集上拟合程度的问题:是否意味着损失函数E(w)越小则泛化能力越强?答案是否定的。还需进一步考察这一曲线拟合问题中不同阶数多项式的影响。

值得注意的是,在M取值为0或1的情况下(即M = 0, 1),模型对训练数据集中的散点分布未能达到良好的拟合效果。然而,在这种情况下(即当M = 3),生成的预测结果尚可接受。随着复杂度进一步增加到9级后(即当M = 9),模型达到了最佳的拟合效果——此时不仅能够实现误差函数达到零水平(即E(w) = 0),而且能够深入理解数据背后的规律性(思考一下原因)。然而,在这种情况下(即当模型复杂度达到9级),生成的预测曲线与实际数据分布之间的差距显著——尤其是在新引入的数据点附近——这被定义为过拟合理论上的极限表现;而在较低复杂度下则被称为欠拟合并不能充分捕捉到数据中的潜在模式。

2.3 如何避免过拟合

2.3.1 从模型出发(交叉验证,AIC, BIC)

从曲线拟合问题的角度出发,在直观上我们可以选择较为简单的模型实例(如M=3)。当遇到需要解决的一般性问题时,则需要探讨如何选择适合复杂度的模型?一种可行的方法是从训练数据集中分离出一部分作为验证集(validation set),该验证集合用于评估而非参与训练,并能帮助判断模型是否出现欠拟合或过拟合的情况。

划分为训练集与验证集的过程同样具有一定的主观性。如果划分不够合理,则可能导致所选模型的一般化能力受到影响。另一方面, 训练数据的价值不容忽视. 舍弃部分数据令人惋惜. 因此采用利用全部数据进行交叉验证(cross validation)的方法更为妥当.

上图展示了10×10折交叉验证的方法。此外,在实际应用中还常用到3×3折、5×5折以及NN折(其中NN代表样本数量)的交叉验证方法。值得注意的是,在这种情况下,NN折交叉验证也被称为留一法(leave-one-out cross-validation)。尽管如此,在模型较为复杂的情况下需要反复训练和测试多次;尤其是当可选模型种类繁多时,计算量会呈指数级增长。不过,在数据有限的情况下这种方法仍然是最常用也是最优的防止过拟合策略之一。

除此之外,在计算资源消耗方面更为经济的是AICAAC准则与BICC准侧。其中AICAAC准则由日本统计学家赤池弘次于1974年提出,而$BICC准侧则由Schwarz于1978年提出。这些准侧为平衡估计模型的复杂度与拟合数据的表现提供了有效的评估标准。

AIC准则的其中一种表达式为:

AIC=k+E(w)AIC=k+E(w)

BIC准则的其中一种表达式为:

BIC=kln(N)+E(w)BIC=kln(N)+E(w)

其中kk即为模型参数的数量;NN则表示训练数据集中的样本数量。一般而言,在选择模型评估指标时,AICA IC或B IC B IC指标数值越小,则表明该模型具有更好的泛化能力。

2.3.2 从策略出发(正则化)

观察到参数取值图中

E(w)=\frac12\sum_n{f(x_n, w)-y_n}2+\frac\lambda2||w||2E(w)=21​n∑​{f(xn​,w)−yn​}2+2λ​∣∣w∣∣2

参数λ用于调节惩罚强度,在回归分析中,||w||表示L2范数;该方法通常称为岭回归分析。

或者:

E(w)=\frac12\sum_n{f(x_n, w)-y_n}^2+\lambda||w||_1E(w)=21​n∑​{f(xn​,w)−yn​}2+λ∣∣w∣∣1​

在回归分析中,||w||_1被定义为L1范数;该策略被命名为LASSO回归方法。这些统计学意义将在后面进行详细讨论

2.3.3 从寻优出发(Early Stopping)

在多项式拟合的情况下(考虑多项式拟合),这些较大的参数值是由寻优算法逐步推导得出的。我们是否能够在寻优过程中提前终止以避免这个问题?这种方法不仅在理论上可行,在工程实践中也表现出色,并被称为早停法(Early Stopping)。

一般在算法寻优时,训练集和验证集的误差呈如下的曲线:

我们可以通过观察验证集误差的变化情况来决定何时停止训练,并选择参数使其达到最优状态。在实际工程中,早停法有多种应用途径。例如,在连续多次迭代中如果验证集误差持续上升,则认为模型开始过拟合并决定停止训练;或者当验证集误差上升幅度超过一定阈值时就停止训练等等。

2.3.4 从数据出发(增加数据集)

分析上述多项式拟合M=9的情况时

从直观上分析可知,在大数据量与大模型容量之间存在良好的适配性关系,在一定程度上能够有效降低过拟合的风险。然而,在工程实践中仅靠交叉验证、正则化技术和早停法可能难以达到最佳效果,在实际应用中应当综合运用这些技术手段以提升模型性能。值得注意的是,在实际应用场景中收集高质量标注数据是一个耗时且昂贵的过程,在这一过程中不仅需要对不同类别的样本进行区分还需要根据具体业务需求对各类别样本进行科学划分:动态生成的部分标签通常可以通过实时监控系统获取;而另一些则需要由专业人员进行人工标注以确保准确性

例如,在风控场景中运用机器学习技术时

在图像识别领域中,为了区分图片中的物体类别,必须对每张图片进行人工标注.

为了识别一张图片上的文字区域,需要人为给每个文字区域画上框:

自动驾驶必须用于识别车道线、行人、建筑物以及汽车等元素;随后会对每一个像素点进行人工标注

自然语言处理为了识别每个单词的词性,需要人为给每个汉字做标注:

今年海钓比赛在厦门市与金门之间的海域举行。

今年的海钓大赛将在厦门前门街道与金门大桥之间举办

数据是人工智能领域中不可或缺的基础支撑体系。特别是在当前深度学习算法快速发展的同时,海量的数据资源成为不可或缺的关键要素。高质量标注样本不仅具有重要的研究价值,在企业层面也是维持其核心竞争力的重要资源。从战略性的角度来看,在人工智能产业生态中占据核心位置的数据资源同样具有不可替代的优势。

2.4 过拟合产生的原因

定义为由训练集DD训练得到的函数ff对新样本xx的预测输出,则真实输出由yy表示。

涵盖同一学习场景下多个数据集的情况

使用样本数相同的不同训练集产生的方差(variance)为:

var(x)=E_D((f(x;D)-\bar{f}(x))^2)var(x)=ED​((f(x;D)−fˉ​(x))2)

方差衡量数据集扰动影响的关键指标:它反映了相同规模训练数据波动对模型性能的影响,并用来刻画数据扰动带来的影响

期望输出与真实标记的差别称为偏差(bias),即:

bias(x)=(\bar{f}(x)-y)^2bias(x)=(fˉ​(x)−y)2

偏差的本质:偏差衡量了学习算法的期望预测与实际结果之间的偏离程度,并反映了学习算法本身的拟合能力

模型的泛化能力可以分解为偏差和方差的和:

E_D((f(x;D)-y)2)=E_D((f(x;D)-\bar{f}(x))2)+(\bar{f}(x)-y)^2ED​((f(x;D)−y)2)=ED​((f(x;D)−fˉ​(x))2)+(fˉ​(x)−y)2

通常情况下,在机器学习模型中存在偏差与方差之间的内在矛盾(bias-variance trade-off)。在分析时,在函数y=sin(2πx)上额外采集了1010个不同位置的样本点后发现,在这种情形下使用99阶多项式会导致模型出现剧烈震荡现象(overfitting),尽管如此仍可完美拟合这1010个样本点。这种情况下表现出低偏差、高方差的特征(如下图所示):

一个形象的打靶示意图来解释bias和variance的区别:

那么我们就可以系统性地在bias和variance之间寻求一种平衡吗?基于此,在2.3节中介绍了一种经典的方法。

2.5 最大似然估计和贝叶斯估计

2.5.1 贝叶斯定理

AA和BB代表两个事件,则AA和BB共同发生的概率为:

P(A,B)=P(A|B)P(B)=P(B|A)P(A)P(A,B)=P(A∣B)P(B)=P(B∣A)P(A)

贝叶斯定理有如下表示:

P(A|B)=\frac{P(B|A)P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)P(A)​

我们开看如下的具体案例:

设想一位患者前往医院进行结直肠癌筛查。该筛查存在一定的准确性问题,在这种情况下检测呈阳性的概率如下:对于患病个体而言,在这种情况下检测呈阳性的概率达到80%,而未患病个体在此测试中呈现阳性的概率则为10%。具体来说,则是说在患疾病的情况下检验结果阳性的概率是P(X=₁ | Y=₁)=₀.₈,在未患疾病的情况下检验结果阳性的概率则为P(X=₁ | Y=₀)=₀.₁

其中y=1y=1为这个人有癌症,y=0y=0为这个人没有癌症,x=1x=1为检查为阳性。

如果某人检测呈阳性,则从直观上讲,这个人患结直肠癌的可能性很大。然而,在考虑结直肠癌在人群中的发生概率为P(y=1) = 0.004(基于先验知识)的情况下,则有:

P(y=1|x=1)=\frac{P(x=1|y=1)P(y=1)}{P(x=1|y=1){P(y=1)}+P(x=1|y=0){P(y=0)}}=0.031P(y=1∣x=1)=P(x=1∣y=1)P(y=1)+P(x=1∣y=0)P(y=0)P(x=1∣y=1)P(y=1)​=0.031

这表明只有3%的可能性这个人患有结肠癌。这也体现了先验知识如何根据观察结果进行调整。在统计学习领域,贝叶斯定理的应用极为广泛。在接下来的两个小节中,我们将探讨一个简单的参数估计问题以及统计推断方法,并深入研究贝叶斯估计的具体应用。

2.5.2 最大似然

考虑一个抛硬币的问题,在这个问题中定义了一个结果变量x∈{0,1}x∈{0,1}。其中当x=1时表示抛出正面的结果而当x=0时则表示抛出反面的结果。假设该硬币是非均匀的即每次抛出正面和反面的概率各不相同设正面朝上的概率为μ

p(x=1|\mu)=\mup(x=1∣μ)=μ

那么自然,反面的概率为1-\mu1−μ:

p(x=0|\mu)=1-\mup(x=0∣μ)=1−μ

统一上述两式子就是经典的伯努利分布(Bernoulli distribution)

p(x|\mu)=\mux(1-\mu){1-x}p(x∣μ)=μx(1−μ)1−x

假设我们观察到一个投掷序列D={x₁,x₂,…,x_N}D={x₁,x₂,…,x_N}(其中N表示总次数),其似然函数定义为这些观测数据发生的联合概率

p(D|\mu)=\prod_{n=1}N{p(x_n|\mu)}=\prod_{n=1}N{\mu{x_n}(1-\mu){1-x_n}}p(D∣μ)=n=1∏N​p(xn​∣μ)=n=1∏N​μxn​(1−μ)1−xn​

最大概率就是视作\mu的取值应当使得该函数取得最大值。如果我们进行10次试验,并观察到其中出现正面7次、反面3次,则似然函数为:P(D|\mu)=\prod_{i=1}^n \mu^{x_i}(1-\mu)^{1-x_i}

p(D|\mu)=\mu7(1-\mu)3p(D∣μ)=μ7(1−μ)3

可以选择取对数将上述式子转换为 \ln(p(D|\mu)) 等于 7\ln \mu 加上 3\ln (1-\mu), 然后对其进行求导运算后得到 \mu 的值为 0.7.

一般来说,有\mu_{ML}=\frac1N{\sum_{n=1}^N{x_n}}μML​=N1​∑n=1N​xn​

2.5.3 贝叶斯估计

在上述的最大似然估计中存在一个根本性问题假设我们观察到的样本总数为3次其中全部结果均为正面那么根据最大似然估计的结果我们得到\hat{\mu}_{MLE} = 1这意味着我们有理由相信以后每次抛掷该硬币都将出现正面结果这种推断虽然从数学上是严谨的但在实际生活中往往与我们的直觉不符例如有其他人曾记录该硬币被抛掷20次其中有正面向上的次数为十次此时我们应该仍然坚定认为每次抛掷都会出现正面吗还是需要修正自己的判断呢如果需要如何进行修正呢这些问题都提示我们需要在最大似然估计的基础上引入关于参数\mu的先验信息

假设有如下的关于\muμ的先验分布:

p(\mu)\propto\mu{10}(1-\mu){10}p(μ)∝μ10(1−μ)10

此时根据贝叶斯定理:

p(\mu|D)\propto{p(D|\mu)p(\mu)}p(μ∣D)∝p(D∣μ)p(μ)

此时结合我们的观测3次,正面次数为3次,可知:

p(\mu|D)\propto\mu{13}(1-\mu){10}p(μ∣D)∝μ13(1−μ)10

此时我们使p(\mu|D)p(μ∣D)达到最大值会得到\mu_{MAP}=\frac{13}{23}μMAP=2313⁄,这一推断相比单靠最大似然估计得到的结果\mu_{ML}=1更为合理,其意义在于通过引入先验知识来提升参数估计的效果.当所观测的数据样本数量较小时,其重要性体现在通过结合先验信息与似然函数来进行参数估计.这种将结合先验和似然结合起来进行参数估计的方式被称为最大后验概率推断(MAP: Max a Posterior).

鉴于篇幅所限,在此省略了大量数学证明及相关表达式仅为方便大家直观地理解贝叶斯估计的思想具体细节可参考Pattern Recognition and Machine Learning等著作

  1. 线性回归

3.1 经典线性回归

对于一个一般的线性模型而言,其主要目标就是构建输入变量与输出变量之间的回归模型.从数学角度而言,线性回归具有如下的表达形式:

h_subscript{\theta}(x) represents the hypothesis function based on feature vector x and parameter vector theta. It can be expressed as the sum of theta_zero plus theta_one multiplied by x_one, plus theta_two multiplied by x_two, continuing up to theta_n multiplied by x_n. This is equivalent to the summation from i equals zero to n of (theta_i multiplied by x_i), which is also equivalent to the matrix multiplication of theta transposed version with vector x, resulting in h_theta(x).

设初始值为1,在变量向量的情况下(即单变量线性回归问题),如前所述,在实际应用中常涉及的因素包括

Living area(feet^2)Price

2104400

1600330

2400369

……

xx和yy的散点图如下:

一元线性回归的函数表达形式h_{\theta}(x)hθ​(x)是二维平面上的一条直线:

我们可以引入更高维度的特征变量xx,考虑多变量的例子:

Living area(feet^2)badroomsPrice

21043400

16003330

24002369

………

在此时刻将其视为多元线性回归问题更为贴切。然而,在实际应用中,在高维空间中这一函数的作用则是构建一个平面模型。

现在我们假设预测值θ^T x与真实值y之间存在一个误差项ε,并且这种关系可以用以下等式表示:

y = \theta^Tx + \epsilony=θTx+ϵ

线性回归基于误差项ϵ服从独立同分布的正态分布,并且该分布具有零均值和方差σ²

P(\epsilon) = \frac{ 1 }{\sqrt{2\pi}\sigma} e{-\frac{(\epsilon)2}{2\sigma^2}}P(ϵ)=2π​σ1​e−2σ2(ϵ)2​

那么yy服从均值为\thetaTxθTx,方差为\sigma2σ2的正态分布:

P(y|x;\theta) = \frac{ 1 }{\sqrt{2\pi}\sigma} e^{-\frac{(y - \thetaTx)2}{2\sigma^2}}P(y∣x;θ)=2π​σ1​e−2σ2(y−θTx)2​

所有的样本可以认为是从上述分布中抽样,则MM个样本的似然函数为:

L(θ)被定义为从i=1到m的ρ(y_i|x^i;θ)之连乘积,并与从j=1到n的相同表达式相等。
具体而言,
L(θ)=∏{i=1}{m}ρ(y_i|xi;θ)=∏{j=1}^{n}[ ( 1/(√(2π)σ)) × e^{-[(y_j - θTx_j)^{ 2 }]/( 2σ²)} ]

上面的函数式子中,xixi与yiyi都是已知的样本,θθ是要学习的参数。

为计算方便,我们把L(\theta)L(θ)取对数:

该模型的对数似然函数可表示为各组成部分的对数相加的形式...

上面的公式取最大值,也就是下面的函数取最小值:

J(\theta) = \frac{1}{2}\sum_{i=1}m(h_{\theta}(xi) - yi)2J(θ)=21​i=1∑m​(hθ​(xi)−yi)2

求J(\theta)J(θ)的最小值,可以直接对上式求驻点:

首先,将上式变形:

J(\theta) = \frac{1}{2}\sum_{i=1}m(h_{\theta}(xi) - yi)2\ = \frac{1}{2}(X\theta - y)^T(X\theta - y)J(θ)=21​i=1∑m​(hθ​(xi)−yi)2=21​(Xθ−y)T(Xθ−y)

下一步对参数\thetaθ求导可得:

对于J(θ)=½(Xθ−y)^T(Xθ−y),其梯度∇_θ J(θ)等于
∇_θ [½(…)] 计算结果为
θ [½(theta ^ T x - Y ^ T)(X theta - Y)]
进一步展开后得到
theta [½(theta ^ T x x theta-theta ^ T x Y-Y ^ T x theta + Y ^ T Y)]
化简后结果为
[1/2][2x ^ T x theta-x ^ T Y-(Y ^ TX)^t]
最终结果即为x ^ TX theta-x ^ TY

驻点满足:

XTX\theta-XTy = 0XTXθ−XTy=0

即得到 :

\theta = (XTX){-1}X^Tyθ=(XTX)−1XTy

上式也称为Normal Equation​,当然也可以利用梯度下降法迭代求解:

\theta_j = \theta_j - \alpha \cdot \frac{\partial}{\partial \theta_j} J(\theta) = \theta_j - \alpha \cdot \sum_{i=1}^{m} (h_{\theta}(x_i) - y_i) x_{i,j}
其中,
\theta_j = \theta_j - \alpha \cdot \nabla_{\theta_j} J(\theta)
即,
\theta_j = \theta_j - \alpha \cdot (\frac{\partial}{\partial \theta_1} J(\theta), ..., \frac{\partial}{\partial θ_m} J(θ))

梯度下降法和Normal Equation​的区别如下:

Gradient DescentNormal Equation

需要选择学习率\alphaα无需选择学习率

需要迭代,需要选择初始值不需要迭代

不需要求逆矩阵需要求矩阵X^TXXTX的逆矩阵,复杂度较高

当特征维度nn很高时也能使用特征维度nn很高时几乎无法使用

在工程上一般采取梯度下降法或者随机梯度下降法求解。

3.2 岭回归(ridge regression)

经典线性回归基于假设误差服从标准正态分布,在此基础上 ridge 回归进一步假定了参数 θ 也被假定服从标准正态分布,并通过最大后验估计方法推导得到似然函数形式为:

argmaxθ​L(θ)​=lni=1∏n​σ2π​1​e−2σ2(yi​−θTxi​)2​⋅j=1∏d​τ2π​1​e−2τ2θ2​=−2σ21​i=1∑n​(yi​−θTxi​)2−2τ21​i=1∑d​θj2​−nlnσ2π​−dlnτ2π​​

最大似然等价于最小化如下的损失函数:

argminθ​f(θ)​=i=1∑n​(yi​−θTxi​)2+λj=1∑d​θj2​​

岭回归的Normal Equation​为:

\theta = (X^TX+\lambda I){-1}XTyθ=(XTX+λI)−1XTy

岭回归由于矩阵\lambda IλI对角元素全部是11这一特点而得名,并其系数变化轨迹类似于一座山岭

岭回归通过约束参数取值范围来防止模型过拟合现象的发生,在面对特征变量之间存在较强相关关系时(即这些特征变量之间具有较强的关联性),可以有效避免设计矩阵X^TXXTX出现不可逆的情况

3.3 lasso回归和ElasticNet

lasso回归与ridge回归的主要区别在于假设参数θ服从拉普拉斯分布,并通过最大后验概率估计法进行求解从而得到似然函数表达式

argmaxθ​L(θ)​=lni=1∏n​σ2π​1​e−2σ2(yi​−θTxi​)2​⋅j=1∏d​2b1​e−b∣θi​∣​=−2σ21​i=1∑n​(yi​−θTxi​)2−b1​i=1∑d​∣θj​∣−nlnσ2π​−dln2b​

最大似然等价于最小化如下的损失函数:

argminθ​f(θ)​=i=1∑n​(yi​−θTxi​)2+λj=1∑d​∥θj​∥1​​

由于θj的L1范数不可微,在现有文献中通常采用坐标轴逐步法或最小角度回归法来解决这一问题,并且鉴于篇幅限制这里不做进一步展开。同时,请参考附图以获得完整的算法流程图

相较于岭回归的方法,在使用Lasso回归时其解更容易位于坐标轴上的位置,并因此更容易得到稀疏解,在一定程度上抑制了特征间的共线性问题,并且在一定程度上实现了特征选择的目的。Lasso回归全称是Least absolute shrinkage and selection operator。

ElasticNet回归是由岭回归和Lasso回归组成的模型,并且能够继承或融合二者的优点;其损失函数为:

argminθ​f(θ)​=i=1∑n​(yi​−θTxi​)2+λ1​j=1∑d​θj2​+λ2​j=1∑d​∥θj​∥1​​

  1. 线性分类

从理论上讲,在机器学习领域中将数据点进行归类的过程被称为分类算法。对于具有不同特性的数据集而言,在其分布空间中的分界面被称为决策边界;若决策面在DD维空间中表现为D-1维超平面,则称这种分类方法为线性分类。具体示意图如下:

一维数据的线性决策边界:

二维数据的线性决策边界:

三维数据的线性决策边界:

这些场景都属于线性可分的情况。也就是说能够找到一个超平面来区分样本。然而当样本的空间分布变得复杂时无法确定这样一个明确的区分超平面如图所示的是样本的空间分布情况

尽管目前仍可运用线性判别边界,在分类性能上却会明显下降。对于这种数据分布情况通常会采用其他非线性技术手段来处理,并且可以通过对其进行一些预处理使得它成为线性可分的情况(例如支持向量机等),这些内容将在后续章节中详细探讨。

数据集的线性可分性定义如下(针对二分类):

给定一个数据集:

T = {(x_1, y_1), (x_2, y_2), …, (x_N, y_N)},T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)},

其中,x_i \in R^{\ n}, \ y_i \in \gamma = {+1, -1}, \ i = 1, 2, …, Nxi​∈R n, yi​∈γ={+1,−1}, i=1,2,…,N,如果存在某个超平面SS:

w \cdot x + b = 0w⋅x+b=0

通过将数据集的正样本点和负样本点分别正确划分到超平面两侧的数据集被称为线性可分数据集

线性分类任务的主要目的是使数据集尽可能地分布在SS两侧区域(数据集本身不一定是线性可分的)。那些被错误分类的样本会被一个损失函数量化,并通过最小化该损失函数可以确定参数ww和bb。

4.1 感知机

在1957年提出的一种分类方法叫做感知机,在机器学习领域占据重要地位。它是一种用于二元分类的线性模型,在处理模式识别问题时表现出色。其输入为实例对应的特征向量表示,并输出对应于事例类别(分别为+1和-1)。为了实现有效的学习过程,在假设训练数据集可以被线性划分的情况下,算法的目标就是寻找一个合适的参数组合使得能够将正负样本点完美区分开来。然而,在面对非线性的分布结构时,则无法找到这样的分割超平面

感知机从输入空间样本xx到输出空间样本yy的模型如下:

f(x)=sign(w \cdot {x}+b)f(x)=sign(w⋅x+b)

其中:

sign(x)= sign(x)={−11​x<0x≥0​

MM为误分点的集合,感知机的优化目标是最小化如下函数:

L(w,b) = \sum\limits_{{x_i} \in M}^{} { - {y_i}(w{x_i} + b)}L(w,b)=xi​∈M∑​−yi​(wxi​+b)

其导数如下:

使用随机梯度下降每次选一个样本点做更新:

算法流程:

输入:训练数据集T = {(x_1, y_1), (x_2, y_2), …, (x_N, y_N)}T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)},其中

x_i \in \chi = R^{\ n}, \ y_i \in \gamma = {+1, -1}, \ i = 1, 2, …, Nxi​∈χ=R n, yi​∈γ={+1,−1}, i=1,2,…,N。学习率\eta(0 < \eta \leq 1)η(0<η≤1)

输出:w, bw,b;感知机模型:f(x) = sign(w \cdot x + b)f(x)=sign(w⋅x+b)

STEP 1选取初值w_0, b_0w0​,b0​

STEP 2在训练集中选取数据(w_i, y_i)(wi​,yi​)

STEP 3如果y_i(w \cdot x_i + b) \leq 0yi​(w⋅xi​+b)≤0,则:

w \leftarrow w + \eta y_ix_i \ b \leftarrow b + \eta y_iw←w+ηyi​xi​b←b+ηyi​

STEP 4转至步骤2,直到训练集中没有误分类点。

动手做一做

训练数据集:

正实例点是[10,8],[6,9],[6,8],[7,6],[7,8],[9,6],[11,3],[10,6],[12,5][10,8],[6,9],[6,8],[7,6],[7,8],[9,6],[11,3],[10,6],[12,5]

负实例点是[1,2],[2,2],[3,1],[1,1],[3,6],[4,4],[3,2],[2,6],[6,2][1,2],[2,2],[3,1],[1,1],[3,6],[4,4],[3,2],[2,6],[6,2]

利用上述随机梯度下降法求解感知机模型

4.2 逻辑回归(logistic regression)

逻辑回归呈现方式与线性回归具有相似之处,并旨在处理二元分类任务;假设输出变量y取值于集合{0,1};为了确保预测值范围限定在0至1之间,逻辑回归遵循以下函数形式:

h_\theta(x)=\frac{1}{1+e{-\thetaTx}}hθ​(x)=1+e−θTx1​

将线性回归模型的结果通过sigmoid函数进行转换处理;其形式表现为一个S型曲线。

\sigma(z)=\frac{1}{1+e^{-z}}σ(z)=1+e−z1​

该函数的主要特性体现在以下方面:当变量xx趋向于负无穷大时,则yy的值趋向零;反之,在变量xx趋于正无穷大的情况下,则yy的值趋向1;在x等于零的情况下,则y等于零点五。

由logistic sigmoid函数得名的是法国数学家皮埃尔·弗朗索瓦·韦吕勒于1844或1845年间研究人口增长模型时所创造的这一概念。这种sigmoid曲线能够模拟一些情况下的人口增长呈现出S型特征。其发展特征表现为早期阶段呈现指数级增长趋势;随后当进入相对稳定的区域时增长率逐渐减缓;最终达到稳定状态后则停止增长。

逻辑回归假设yy服从伯努利分布,并且用h_\theta(x)hθ​(x)代表y=1y=1的概率,即:

P(y=1|x;\theta) = h_\theta(x)P(y=1∣x;θ)=hθ​(x)

P(y=0|x;\theta) = 1-h_\theta(x)P(y=0∣x;θ)=1−hθ​(x)

将上述两个式子合并成一个:

P(y|x;\theta) = (h_\theta(x))y(1-h_\theta(x)){1-y}P(y∣x;θ)=(hθ​(x))y(1−hθ​(x))1−y

现在有训练数据集T = {(x^1, y^1), (x^2, y^2), …, (x^N, y^N)}T={(x1,y1),(x2,y2),…,(xN,yN)}

似然函数为:

L(θ) = \prod_{i=1}^{N} P(y_i | x_i; \theta) = \prod_{i=1}^{N} [h_\theta(x_i)]^{y_i} (1 - h_\theta(x_i))^{1 - y_i}}

最大似然等价于对似然函数的负对数求最小值:

损失函数 J(θ) 被定义为负对数似然 l(θ),其计算方式为 J(θ)=−ln l(θ)=−∑_{i=1}^N[y_i ln h_θ(x_i)+(1−y_i) ln (1−h_θ(x^i))]

利用梯度下降求解的参数的更新公式为:

\theta_j:=\theta_j-\alpha\dfrac{\partial}{\partial \theta_j}J(\theta)θj​:=θj​−α∂θj​∂​J(θ)

展开后为:

\theta_j:=\theta_j-\alpha\sum_{i=1}N(h_{\theta}(xi) - yi)x_j{i}θj​:=θj​−αi=1∑N​(hθ​(xi)−yi)xji​

可以看出,在形式上逻辑回归与线性回归模型的参数更新表达式是相同的;然而,在逻辑回归模型中引入了一个sigmoid函数套在了线性回归模型的基础之上。

4.3 Softmax回归

在softmax回归框架下(亦称最大熵模型),我们旨在解决多类别分类问题(相较于传统的二元分类模型)。

因此针对训练集T = {(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), … , (x^{(N)}, y^{(N)})}, 我们有yi属于集合{1, 2, … , k}。(请注意,在此定义中类别索引从 1 开始(而非 0 ))。

对于给定的输入x, 我们设计了一个假设函数h_θ(x),用于针对每一类j计算条件概率P(y=j|x)。该函数旨在通过参数θ对各个分类结果的可能性进行量化评估。具体而言, h_θ(x)将输出一个k维向量(向量元素之和为1), 其中每个元素对应某一分类结果的概率预测值。

softmax回归的代价函数为(推导过程略去):

其中1{}1{}为示性函数,{}{}中的取值为真的时候为11,否则为00。

值得注意的是,在此背景下所提及的公式是logistic回归代价函数的一种延伸。其中该代价函数可重新表述为:

为了最小化目标函数J(θ),尚未存在闭合形式解。鉴于此,在缺乏闭合形式解的情况下,在文献中通常采用迭代优化算法(如梯度下降法)来寻找最优解。通过求导运算可获得具体的更新规则表达式:

有了梯度,就可以用梯度下降法去迭代更新参数了。

Softmax 回归 vs. k 个二元分类器

如果你正在开发一个音乐分类的应用,并旨在识别k种不同类型的音乐,请问是应该选择使用softmax分类器吗?还是应该采用logistic回归算法来建立k个独立的二元分类器呢?

这一选择取决于各类别之间的互斥性问题。例如,在面对古典音乐、乡村音乐、摇滚乐和爵士乐四种类型的音乐分类时(分别对应上述四种分类),每个训练样本只会被打上一个标签(即每首歌曲只能归入这四种类型之一),因此建议采用类别数k=4的Softmax回归模型。(如果在数据集中存在不属于这四类的情况,则可添加一个"其他类"分类,并将类别数目k增加到55)

若将四个类别定义为:人声音乐类(如抒情歌曲)、舞曲类(如舞曲与节奏混合型)、影视配乐类(如电影主题曲)及流行歌曲类,则需注意这些类别并非互不相容。举例而言 一部电影的主题曲往往也融入了歌手的声音元素。在这种情况下 若采用44个二元分类器进行逻辑回归分析则能更精确地进行分类。这样 我们的算法便能够分别识别每首新音乐作品 是否符合上述各类别中的任何一个。

让我们来看一个计算视觉领域的例子。(i) 假设这三个分类目标分别为室内场景类、纯黑白图像类以及人像类,请问你会采用softmax回归模型或者三个独立的logistic回归模型来完成该视觉任务吗?(ii) 现在假设这三个目标分别是室内场景类、纯黑白图像类以及人像类,请问你又会选择采用softmax回归模型还是分别建立多个logistic回归模型来进行分类?

以第一个实例为例,在这三个类别之间存在排他性关系的情况下,则更适合采用softmax回归分类器。而对于第二个实例而言,则应构建三个相互独立的logistic回归分类器更为合理。

4.4 广义线性模型

在上一节中讨论了服从高斯分布的一元线性回归和服从伯努利分布在分类问题中的二元逻辑回归模型及其求解方法;这些方法在解决过程上具有高度相似性,并且都属于广义线性模型这一框架下的特例形式,在这类问题上有着较为统一的有效解决方案。

改写后的文本

p(y;\eta) = b(y)exp(\eta^TT(y) - a(\eta))p(y;η)=b(y)exp(ηTT(y)−a(η))

在这里通常使用\eta作为自然参数(natural parameter),通常情况下,T(y)=y。\eta被称为log partition function。\eta上的指数项e^{-\eta}扮演了归一化常数的角色。当我们固定T,a,b时,在不断调整\eta的过程中就能获得一个分布族。

伯努利分布属于指数分布族

对于伯努利分布我们有:

The probability p is defined as phi raised to the power of y multiplied by (1-\text{ϕ}) raised to the power of (1-y).
This can be equivalently expressed as:

p(y;ϕ)=exp\left[ylogϕ+(1−y)log(1−ϕ)\right]

Further simplifying, we have:

p(y;ϕ)=exp\left[log\left(\frac{ϕ}{1−ϕ}\right)y + log(1−ϕ)\right]

很显然,伯努利方程是符合指数分布族形式:

\eta = log(\frac{\phi} {1- \phi}) \ T(y) = y \ a(\eta) = -log(1 - \phi) = log(1 + e^\eta) \ b(y) = 1 \η=log(1−ϕϕ​)T(y)=ya(η)=−log(1−ϕ)=log(1+eη)b(y)=1

可以看出上式体现着:ϕ=1/(1+e^(-η))ϕ=1+e(−η)1, 即为我们之前所引入的sigmoid函数

高斯分布属于指数分布族

p(y; μ)等于号表示为概率密度函数形式;具体而言它等于(√(1/(2π)))乘以指数函数exp(-½(y² - 2μy + μ²))。经过展开运算我们可以得到其等价表达式即p(y; μ)=(√(1/(2π)))乘以exp(-½y²)再乘以exp(μy - ½μ²)

因此,在指数分布族形式下,我们只需要进行如下转换:

\eta = \mu \ T(y) = y \ a(\eta) = \mu^2/2 = \eta^2/2 \ b(y) = (1/\sqrt{2\pi})exp(-y^2/2)η=μT(y)=ya(η)=μ2/2=η2/2b(y)=(1/2π​)exp(−y2/2)

还有很多常见的分布都属于指数分布族,在此就不展开。

广义线性模型

广义线性模型有如下的假设:

P(y|x;\theta) \sim 指数分布(\eta)P(y∣x;θ)∼指数分布(η)

\etaη与xx成线性关系,即\eta = \theta^TXη=θTX

给定一个xx,我们需要目标函数为h_\theta(x) = E[y|x]hθ​(x)=E[y∣x]

根据如上假设,我们可以推导出高斯分布的线性回归模型:

h_\theta(x) = E[y|x;\theta] \ = \mu \ = \eta \ = \theta^Txhθ​(x)=E[y∣x;θ]=μ=η=θTx

在所述公式中第一个等式系基于假设三之设定,在第二个等式则因归因于高斯分布所具有的内在特征,在第三个等式则源自于前述高斯分布在相关研究中所推导出的变量间求和关系,在第四个等式则归功于假设二的支持

同样,我们也可以推导出逻辑回归模型:

h_\theta(x) = E[y|x;\theta] \ = \phi \ = \frac{1}{1 + e^{-\eta}} \ = \frac{1}{1 + e{-\thetaTx}}hθ​(x)=E[y∣x;θ]=ϕ=1+e−η1​=1+e−θTx1​

在上式中第一个等式基于假设三成立这一前提条件展开计算,在第二个阶段性结果的基础上进一步运算得到第二个结论,在第三步中我们依据前文关于伯努利分布求和关系的具体推导过程进行计算得到了第三阶段的结果,在最终阶段我们依据假设二的相关条件完成了整个运算过程得到最终结果

根据上述分析可知,在广义线性模型的大框架下推导出sigmoid函数形式的方法并非凭空想象出来的

4.5 从另一个角度看逻辑回归

考虑二分类问题,根据贝叶斯公式有:

P(y=1|x)=\frac{P(x|y=1)P(y=1)}{P(x|y=1)P(y=1)+P(x|y=0)P(y=0)}P(y=1∣x)=P(x∣y=1)P(y=1)+P(x∣y=0)P(y=0)P(x∣y=1)P(y=1)​

如果我们定义:

\eta=ln\frac{P(x|y=1)P(y=1)}{P(x|y=0)P(y=0)}η=lnP(x∣y=0)P(y=0)P(x∣y=1)P(y=1)​

那么有:

P(y=1|x)=\frac{1}{1+e^{-\eta}}P(y=1∣x)=1+e−η1​

这和我们最初引入的sigmoid函数形式也是一致的。

实际上,在基于两个类别样本分布假设(例如高斯分布)的情况下

极大似然的求解示意:

假设先验概率P(y=1)等于\pi(记作\pi),则P(y=0)等于1-\pi。对于来自类别y=1的数据点\mathbf{x}^n而言(其中n表示数据点的数量),其联合概率分布如下:假定各类样本均服从相同方差的正态分布

P(xn,y=1)=P(y=1)P(xn|y=1)=\pi{N(x^n|\mu_1,\Sigma)}P(xn,y=1)=P(y=1)P(xn∣y=1)=πN(xn∣μ1​,Σ)

P(xn,y=0)=P(y=0)P(xn|y=0)=(1-\pi){N(x^n|\mu_2,\Sigma)}P(xn,y=0)=P(y=0)P(xn∣y=0)=(1−π)N(xn∣μ2​,Σ)

这样似然函数可以写为:

\prod_{n=1}N(\pi{N(xn|\mu_1,\Sigma))}{yn}((1-\pi){N(xn|\mu_2,\Sigma))}{1-y^n}n=1∏N​(πN(xn∣μ1​,Σ))yn((1−π)N(xn∣μ2​,Σ))1−yn

为了确定联合概率分布,需要确定\pi,\mu_1,\mu_2,\Sigmaπ,μ1​,μ2​,Σ四个未知变量,分别为:

\pi=\frac{1}{N}\sum_{n=1}Nynπ=N1​n=1∑N​yn

\mu_1=\frac{1}{N_1}\sum_{n=1}Nynx^nμ1​=N1​1​n=1∑N​ynxn

\mu_2=\frac{1}{N_2}\sum_{n=1}N(1-yn)x^nμ2​=N2​1​n=1∑N​(1−yn)xn

\Sigma=\frac{N_1}{N}S_1+\frac{N_2}{N}S_2Σ=NN1​​S1​+NN2​​S2​

其中:

S_1=\frac{1}{N_1}\sum_{n\in{y=1}}(xn-\mu_1)(xn-\mu_1)^TS1​=N1​1​∑n∈y=1​(xn−μ1​)(xn−μ1​)T

S_2=\frac{1}{N_2}\sum_{n\in{y=0}}(xn-\mu_2)(xn-\mu_2)^TS2​=N2​1​∑n∈y=0​(xn−μ2​)(xn−μ2​)T

可以看到先验几率π即为样本点所占的比例。其中μ₁和μ₂分别对应于两类样本的均值。协方差矩阵Σ被定义为两类样本方差的加权平均值。一旦这些参数被确定后,则对于一个新的测试样本x来说,
我们便能够较为方便地计算出P(y=1|x)的具体数值。

4.6 生成模型和判别模型

让我试着分析一下:假设我知道一个人A的语言特点和常见的国家语言特征之间存在关联性的情况下,请问我应该如何推断出这个人A可能使用的语言所属的国家?

生成式模型

我决定系统地学习每一种国家的语言,这样一来就能相对容易地推断出A所说的语言是哪种,同样地,C和D使用的语言我也能够识别出来,从而,我可以自由地使用多种不同的国家语言进行交流。

判别式模型

我只需了解语言间的差异所在是什么?掌握了这个界限后自然就能分辨出各种不同的语言。我能明确辨识出各不相同语言的独特之处吗?但我无法流利地说。

如果我对原始数据集xx进行分析,并希望利用标签yy来区分同一类中的不同样本进行分类识别,则生成式模型旨在推导样本与标签之间的整体概率关系;而相比之下,判别式模型专注于推导给定样本条件下对应的标签概率

生成式模型P(x, y)基于贝叶斯公式可表达为P(y|x)=\frac{P(x, y)}{P(x)}并被应用于分类任务;联合概率分布P(x, y)同样可以被用来生成样本对(x, y)等目的。

判别式模型被设计为识别出一组分界面(即一个或多个超平面),通过这些分界面将给定的样本xx分配到对应的分类yy中;这也直观地体现了"判别"这一术语的本质含义。

在4.5节中,在采用逻辑回归模型时属于判别式的方法;而建立P\left({x}_{n},{y}_{1}\right)P\left({x}_{n},{y}_{0}\right)的概率模型则属于生成型的方法。

4.7 分类器评价标准

多种分 classification 方法存在;它们各自具有独特的特性,在面对不同数据集时表现出差异性;在实际应用中需根据具体任务选择合适的 classifier;如何评估并选择一个最佳的 classifier?评估一个 classifier 的性能有哪些标准?从直观上看,则常用准确率指标(accuracy)来衡量 classification 任务的表现。

毫无疑问, 正确率是一个简单而直观的表现指标. 然而, 即使有一个算法在测试集上达到了很高的准确率, 但这并不意味着它就是最优的选择. 举个例子来说, 在地震预测问题中, 我们可能会从一堆特征中提取出用于地震分类的关键属性. 假设我们有一堆数据来自不同地区的地质构造信息以及历史地震记录. 如果一个不加思考地将所有测试用例都归类为"不发生地震", 那么这个简单的分类器可能会在训练集或验证集上表现出极高的准确率. 但当真正面临一次大地震事件时, 这个模型却毫无预警能力. 这种极端的情况会导致巨大的经济损失甚至人员伤亡. 所以单纯追求高准确度并不一定是我们的目标所在. 这是因为在这种情况下数据分布存在严重的不平衡现象: 类别1(即发生地震)的数据样本非常稀少. 如果模型仍然能够完美地识别出类别1的情况并做出正确的判断, 那么即使它的准确度很高也仍然无法满足我们的需求. 因此我们需要深入探讨其他更加适合这类问题的评估标准.

本文首先概述几种 典型 的 模型评价指标。假设我们的分类任务仅限于两种类型:正类(Positive)和 负类(Negative)。

True positives(TP): 正确划分到正类的数量,即实际为真类且被分类器识别为真类的实例数量

False positives(FP)是指被错误地分类为 正 例的数据点数量;其定义为在分类器作用下将实际属于 负 类别数据实例判定为 正 类别的数据实例数量

False negatives (FN):属于 被错误分类为 负类 的实例数量;具体来说,它指的是那些 实际属于 正类却 被分类器归类为 负类 的数据点数量;

True negatives (TN):正确划分到负类中的实例数量, 即实际属于负类且被分类器划分为负类的具体案例数量。

混淆矩阵:

预测正预测负总计

实际正TPFN正样本总数

实际负FPTN负样本总数

总计预测为正样本的总数预测为负样本的总数所有样本总数

评价指标:

1)正确率(accuracy)**

准确率是应用中最常见的评估标准,
accuracy = (TP + TN)/(TP + FN + FP + TN),
这个概念相对容易理解,
在分类模型中,
一般来说,在分类模型中,
正确的分类数量与总的样本数量之比即是准确率

2)错误率(error rate)

错误率与正确率相对而言,则表示被分类器误判的比例;其计算公式为:error rate = (FP + FN) / (TP + FN + FP + TN);对于每一个具体实例而言,在分类时要么属于正确的结果要么属于错误的结果两种情况;因此有:accuracy = 1 - error rate

3)灵敏度(sensitive)

sensitive代表正确识别的正例占所有正例的比例,并评估了分类器在识别正例方面的性能;

4)特效度(specificity)

计算specificity的方式是将真负数除以(假正数加上真负数),这代表了真实阴性率,并评估了分类器在识别真实阴性方面的性能。

FPR = 1-specificity=FP/(FP+TN),表示的是所有负例中被分错的比例

5)精度(precision)

Precision serves as a measure of accuracy, representing the proportion of samples classified as positive that were correctly identified. Precision is calculated as the number of true positives divided by the sum of true positives and false positives, expressed mathematically as precision = TP / (TP + FP).

6)召回率(recall)

召回率可视为覆盖程度的指标。度量是指将多个正例划分为正类。recall=TP/(TP+FN)=TP/P=sensitive。由此可知,召回率与灵敏度实际上是同一指标。

ROC曲线

此图展示了二分模型的实际运行结果,在每一行中可观察到以下信息:首先是一个二分模型实例的运行结果展示;其次共计20个样本数据;每行中的第二个字段即为该样本被判定为正例的概率值;最后一列则对应该样本的真实分类标签

其中class一栏表示真实值,p为正例,n为反例,这20个样本中有10个正例10个反例;score一栏则是分类器给出的分类评分。一般的二分类的实现方法就是选择一个阈值,将大于这个阈值的样本认为是正例,小于这个阈值的样本认为是反例。于是,不妨对 样本4来看,如果将样本4的评分设置为分类阈值,被分类器为正例的样本有1 2 3 4,其中真正的正例样本有1 2 4,故其TPR=3/10=0.3,FPR=1/10=0.1(分母虽然数值一样但是意义不同,前面TPR的分母是样本总体中的真正例个数,后者是样本总体中的真反例个数)。接着不妨设置样本9的评分0.51作为阈值,那么样本1~9都会被分类器认为是正例样本,其中为真正例的有1 2 4 5 6 9共6个,所以TPR=6/10=0.6,FPR=3/10=0.3.如此这样,将1~20每个样本的评分均作为分类器的判定阈值,可以得到20组TPR和FPR的有序数对;然后不妨以TPR和FPR为两个坐标轴建立一个直角坐标系,就可以得到这样的图像:

每个图像集合在图表中都会对应一个坐标点,并连接成一条曲线。为了确保分类器的高度准确性我们期望其能够将所有正例样本正确识别并精确区分反例样本这使得真正率达到1而假正率趋向于零在图形上表现为最佳分类器的曲线应尽可能贴近左上角的位置当数据量足够大时这条曲线会逐渐变得平滑类似于这种形态:

从这个图上看,分类器A的结果肯定比分类器B要好。

另外一种更直观的绘制ROC曲线的方式是将坐标系设定为横轴步长为1/N、纵轴步长为1/P的形式(其中N和P分别代表负样本数量与正样本数量)。具体来说,在绘制过程中按照模型预测结果从高到低排序后依次遍历每一个样本,并从坐标系起点(0,0)开始绘图。当遇到一个正类样本时,在纵轴方向上增加一个单位长度;而每当遇到一个负类样本时,则在横轴方向上增加一个单位长度。完成所有样例遍历后即可得到完整的ROC曲线图形。这种方法的一个显著优点是完全去除了手动设定阈值的需求,并且每个预测概率自然地充当了一个动态阈值点。

全部评论 (0)

还没有任何评论哟~