2.监督学习

监督学习

本节简单记录监督学习的有关知识,包括监督学习的任务描述、监督学习的评价标准和常用方法。



一、任务描述

  监督学习是利用有标签的数据样本进行训练的一种机器学习方法。它的目标是通过学习获得一个模型,这个模型具有对任意给定输入的相应输出进行良好预测的能力。因为它所用的训练样本的标签是人工添加的,在训练之前已知,因此它被称为监督学习

1.1 分类和回归

在监督学习的问题中,输入变量X和输出变量Y可以是多种不同的类型,常见的就是可以分为连续型和离散型两种。根据输入变量和输出变量的不同类型,可以将预测任务划分为两种问题:输入变量和输出变量均为连续变量的预测问题称为回归问题;输入变量不限,输出变量为有限个离散变量的预测问题称为分类问题

  • 回归问题:回归问题的学习可以等价于函数拟合,即选择一条函数曲线使它很好地拟合已知数据冰和很好地预测为止数据。所学到的回归模型就是表示从输入变量到输出变量之间的映射函数。给定训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_n,y_n)\} T={(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)},回归学习基于训练数据样本构建一个模型,即映射函数Y=f(X).对于一个新的输入 x n + 1 x_{n+1} xn+1,回归模型可以根据函数Y=f(X)输出预测的结果 y n + 1 y_{n+1} yn+1
  • 分类问题:其目标是从数据中学习一个分类模型或者分类决策函数,称为分类器。采用分类器对新的输入数据进行预测,输出即为该数据所对应的类别。这个过程称为分类。给定训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_n,y_n)\} T={(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)}分类模型基于训练数据构建一个模型,即分类器Y=f(X)或者P(Y|X)。对于一个新的输入 x n + 1 x_{n+1} xn+1,采用分类器对其进行分类,即预测输出 Y n + 1 Y_{n+1} Yn+1

1.2 过拟合和欠拟合

过拟合问题:在确定了训练数据集、假设空间和损失函数的情况下,如果采用ERM策略对模型进行选择,求解最优模型就可以表示为求损失函数公式的最优化问题。不过由于训练样本的数量是有限的,如果单纯使用此策略来进行优化,那么在样本容量低的情况下算法会更倾向于选择把样本点的每个细节都尽量拟合的模型,因为这种模型最终得到的训练误差是最低的。但是,这种模型由于拟合的过于细致,反而丢失了数据中的一些特征,最后的结果就是我们训练好的模型只在训练集上表现出准确度很高的样子,然而在测试集上的准确性却很差劲,即泛化能力很差(泛化指的是通过学习使模型具有的对未知数据的预测能力)。
欠拟合问题: 这个问题是发生在训练的过程中,没有将训练误差降低到一定标准的情况下。如果训练误差最终维持在一个较高的水平,那么就说明我们没有很好地拟合训练样本,这样的模型对于样本的分析能力是不足的。
 我们的目标就是在过拟合问题和欠拟合问题中间寻找一个平衡。
第一种解决方案是通过调整模型的容量来控制模型是否偏向于过拟合和欠拟合。简单来说,模型的容量是指它拟合各种函数的能力。容量低的模型可能很难拟合训练集,而容量过高的又会造成过拟合。因此,合理选择学习算法的函数集,也就是假设空间就可以控制问题的发生。此方法简单地说就是要让所选择的模型与最优模型的参数个数相同,所选择的模型的参数向量与最优模型的参数向量相近。
在这里插入图片描述
如上图所示,其中四个表格各自表示模型容量M不同的情况,我们给定了10个样本,其中M=0,M=1产生了欠拟合的情况,M=9产生了过拟合的情况。而M=3比较好的符合我们的要求。从这个例子我们可以看出模型的复杂度对于数据预测误差的影响是有一定规律可循的。
下图给出了训练误差与测试误差与模型复杂度之间的关系:
在这里插入图片描述
随着模型复杂度的增大,训练误差一直在减小,但是测试误差先减小后增大。我们的目的就是找到对应测试误差最小的模型复杂度。
第二种方法来控制不良拟合情况是通过正则化(regularization),比如我们使用经验风险最小化策略容易引发过拟合问题,如果在经验风险中加上表示模型复杂度的正则化项构成的损失评估函数被称为结构风险:
R s r m = 1 n ∑ i = 1 n L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}=\frac{1}{n}\sum^n_{i=1}L(y_i,f(x_i))+\lambda J(f) Rsrm=n1i=1nL(yi,f(xi))+λJ(f)
式中,J(f)表示模型的复杂度,这是定义在假设空间上的泛函,通过引入正则化项,结构风险添加了对复杂模型的惩罚; λ > 0 \lambda >0 λ>0是系数,用来调整经验风险和模型复杂度之间的平衡。最小化结构风险要求经验风险和模型复杂度同时小,因此可以得到训练误差和测试误差都小的模型。

3.评估方法

对数据集D进行适当的处理,将其划分为训练集S和测试集T,常见的划分方法有两种:

  1. 留出法
    留出法随机将数据集D划分为两个互斥的集合,其中一个集合作为测试集,另一个作为训练集。有两个问题要注意,第一就是尽可能保持数据分布的一致性,第二就是为了保持分布的随机划分,我们可以多次划分、训练,最后取平均值的方式可以得到更加准确的结果。
  2. 交叉验证法
    首先尽可能保持数据分布一致性的前提下,将数据集D划分为k个大小相近的互斥子集。之后每次使用其中的k-1个子集作为训练集,剩余的子集作为测试集,从而获得k组训练/测试集。使用这k组训练/测试集可以对模型进行k次评估,并取k次结果的均值作为最终结果。在使用交叉验证法时,k的取值对最终评估结果的影响很大,因此通常又把交叉验证法称为"k折交叉验证"。

二、评价标准

2.1 回归问题的评价标准

在回归问题中,常用的损失函数是平方损失函数:
L ( Y , f ( x ) ) = ( Y − f ( x ) ) 2 L(Y,f(x))=(Y-f(x))^2 L(Y,f(x))=(Yf(x))2
在使用这一损失函数对 情况下,通常可以采用最小二乘法进行求解。

2.2 分类问题的评价标准

在分类问题中,常用的评价分类器性能的指标是分类准确率:在给定的测试数据集上,分类器正确分类的样本数与总样本数之间的比值。
r = 1 n ′ ∑ i = 1 n ′ I ( y i = f ^ ( x i ) ) r=\frac{1}{n'}\sum^{n'}_{i=1}I(y_i=\hat{f}(x_i)) r=n1i=1nI(yi=f^(xi))
式中,I表示指示函数,当 y i = f ^ ( x i ) y_i=\hat{f}(x_i) yi=f^(xi)时它的值为1,否则为0.
同时,对于二分类的问题,还有精确率、召回率和调和平均值(考虑了精确率和召回率两者)。

三、常用方法

3.1 逻辑斯谛回归

 逻辑斯谛回归又称为对数几率回归,虽然它称为回归,但是实际上却是一种分类算法。所谓的回归,是指其与线性回归算法之间有关联。
 首先介绍线性回归算法的思想。从最简单的情况进行考虑,在给定的一个数据集D中共有N个数据样本对 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) {(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_N,y_N)} (x1,y1),(x2,y2),(x3,y3),...,(xN,yN),其中每个数据样本都只有一个属性值。线性回归算法的目标就是学习到一个线性模型,对给定的数据样本可以准确地预测出它的标记值。这一模型可以表示成如下的形式: f ( x i ) = w x i + b f(x_i)=wx_i+b f(xi)=wxi+b
在训练模型的过程中,算法试图让模型输出的f(x_i)和训练样本一致的标记值相近,通过最小化二者之间的差异,来得到w和b值。算法采用均方误差来作为衡量差异的度量方式,并采用最小二乘法来对其求解。
 考虑复杂情况,每个数据样本 x i x_i xi具有d个属性,那么相应的,算法也应该去学习d个w值。为了表述方便,我们将参数b也看成是一个w值,这样就可以把所有的w值表示成一个d+1维向量,并且另 x i ′ = ( x i , 1 ) x_i'=(x_i,1) xi=(xi,1).这时线性回归的模型就变成了 f ( x i ′ ) = w T x i ′ f(x_i')=w^Tx_i' f(xi)=wTxi
将所有的数据 x i ′ x_i' xi表示成一个nx(d+1)的矩阵X:
X = [ x i ′ . . . x n ′ ] = [ x 11 . . . x 1 d 1 . . . . . . . . . 1 x n 1 . . . x n d 1 ] X=\begin{bmatrix} x_i'\\ ...\\ x_n' \end{bmatrix}= \begin{bmatrix} x_{11} \quad ... \quad x_{1d} \quad 1 \\ ... \quad ... \quad ... \quad \quad 1 \\ x_{n1} \quad ... \quad x_{nd} \quad 1 \\ \end{bmatrix} X=xi...xn=x11...x1d1.........1xn1...xnd1
而优化的目标参数就只有
w = a r g m i n w ( y − X w ) T ( y − X w ) w=argmin_w(y-Xw)^T(y-Xw) w=argminw(yXw)T(yXw)
在许多问题上,线性回归都可对给出的样本标记值有很好的预测,但是如果进行一个分类任务,将数据样本分为两种不同的类别,这个时候就没有办法使用线性回归方法了。这个时候我们就需要对其进行简单修改来使用逻辑斯谛回归算法
 逻辑斯谛回归算法假设数据样本分为两个类别,可以将其类别标记设置为 y ∈ [ 0 , 1 ] y\in [0,1] y[0,1]。线性回归模型的输出是对于标记值的预测,是一个实值,逻辑斯谛回归算法需要将这一输出转换为0或者1的取值。这里我们采用sigmoid函数对输出值做一个非线性映射,将其取值范围转换到(0,1),最终将小于0.5的值标记为0,将大于等于0.5的值标记为1,这样就解决了一个二分类问题。
现在将之前的线性回归模型得到的输出 w T x + b w^Tx+b wTx+b作为sigmoid函数的输入,就可以得到逻辑斯蒂回归模型:
y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}} y=1+e(wTx+b)1
我们将这个式子做一个简单变换可以得到:
l n y 1 − y = w T x + b ln\frac{y}{1-y}=w^Tx+b ln1yy=wTx+b
如果将类标记y视为样本x是1类的可能性,那么1-y就是样本x是0类的可能性。那么这两者的比值 y 1 − y \frac{y}{1-y} 1yy就是一个几率,它反映了x是1类相对的可能性。
对数几率回归的目标就是选择合适的参数w和b,满足样本属于1类时 w T x + b w^Tx+b wTx+b的值尽可能大,样本属于0类时,其值尽可能小,这样通过sigmoid函数就可以确定样本属于1类的概率有多大。将 w T x + b w^Tx+b wTx+b简写为 θ x ^ \theta\hat{x} θx^,记 h θ ( x ) = 1 1 + e θ x ^ h_{\theta}(x)=\frac{1}{1+e^{\theta\hat{x}}} hθ(x)=1+eθx^1,那么有:
P ( y = 1 ∣ x ^ , θ ) = h θ ( x ^ ) P ( y = 0 ∣ x ^ , θ ) = 1 − h θ ( x ^ ) P(y=1|\hat{x},\theta)=h_{\theta}(\hat{x}) \\ P(y=0|\hat{x},\theta)=1-h_{\theta}(\hat{x}) P(y=1x^,θ)=hθ(x^)P(y=0x^,θ)=1hθ(x^)
综合上面两个式子,我们得到
P ( y ∣ x ^ , θ ) = h θ ( x ^ ) y ( 1 − h θ ( x ^ ) ) ( 1 − y ) P(y|\hat{x},\theta)=h_{\theta}(\hat{x})^y(1-h_{\theta}(\hat{x}))^{(1-y)} P(yx^,θ)=hθ(x^)y(1hθ(x^))(1y)
假设有m个样本,则似然函数有:
L ( θ ) = ∏ h θ ( x i ^ ) y i ( 1 − h θ ( x i ^ ) ) ( 1 − y i ) L(\theta)=\prod h_{\theta}(\hat{x_i})^{y_i}(1-h_{\theta}(\hat{x_i}))^{(1-y_i)} L(θ)=hθ(xi^)yi(1hθ(xi^))(1yi)
对数似然函数有:
l ( θ ) = ∑ i = 1 m y i l o g ( h θ ( x i ^ ) ) + ( 1 + y i ) ( 1 − h θ ( x i ^ ) ) l(\theta)=\sum_{i=1}^{m}y_ilog(h_{\theta}(\hat{x_i}))+(1+y_i)(1-h_{\theta}(\hat{x_i})) l(θ)=i=1myilog(hθ(xi^))+(1+yi)(1hθ(xi^))
为了让似然函数取得最大值,可以定义逻辑斯谛回归的损失函数为 − l ( θ ) -l(\theta) l(θ),那么就转变为求损失函数最大值。然后利用给定的数据集,就可以通过批量梯度下降或者随机梯度下降的方法去求这个最值,从而得到参数 θ \theta θ,即w和b的值,继而得到逻辑斯谛回归模型。

3.2 支持向量机SVM

于1995年诞生的支持向量机SVM是最负盛名的统计机器学习算法,虽然它的名字容易让刚刚接触它的人产生困惑,但是它的原理十分简单,是一种监督学习的线性分类器。不过,与一般的线性分类器不同,SVM所寻找的是能分离不同类别数据的最优线性超平面。
同时呢,基于SVM提出的依赖于核函数的分类方法也可以进行非线性的分类。

3.3决策树

决策树算法是一种利用树结构进行分类的监督学习方法,它可以被看作是一系列if-else规则的集合。对于一棵已经构造好的决策树,一个新的数据结构将从根节点开始,不断地根据节点所对应的数据判断条件沿着节点之间的边向下搜索,直到到达叶子节点并且得到叶子节点所对应的类别归属信息 。

4.4 朴素贝叶斯

利用贝叶斯概率公式:
P ( c ∣ x ) = P ( x ∣ c ) P ( c ) P ( x ) = P ( c ) ∏ i = 1 d P ( x i ∣ c ) P ( x ) P(c|x)=\frac{P(x|c)P(c)}{P(x)}=\frac{P(c) \prod_{i=1}^{d}{P(x_i|c)}}{P(x)} P(cx)=P(x)P(xc)P(c)=P(x)P(c)i=1dP(xic)

4.5 Adaboost

在诸多的机器学习方法中,集成学习是一个很特殊的类别,其并不是一个单独的学习算法,而是一种通过构建并结合多个学习器来完成任务的方法。其主要思想是先构建若干个个体学习器,之后通过某种策略将它们联合起来,形成一个强学习器,从而使分类性能得到提升。在同质集成中按照基学习器之间是否存在以来关系可以将同质集成分为两类:一类是学习器之间存在强依赖关系,需要串行生成,这类的代表算法是Adaboost算法;另一类是不存在强依赖关系,可以并行生成,这类的代表算法是随机森林算法。
 介绍下Adaboost算法:
(1)初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权值,即1/N。
(2)训练弱分类器。具体训练过程中,如果某个样本已经被准确地分类,那么在构造下一个训练集时,它的权值就被降低;相反,如果某个样本点没有被准确分类,那么它的权值就会提高。然后,权值更新过的样本集被用于训练下一个分类器,整个训练过程迭代地进行下去。
(3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器权重,使他在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器权重,使他在最终起着较小的作用。

总结

这就是监督学习的简单笔记介绍了,其中在具体的方法,我们只展开了逻辑斯谛回归算法,对于其余的算法暂不展开了。有问题欢迎随时在评论区或者私聊我,欢迎关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值