前言
线性模型是机器学习的基础,其数学模型、思想等在机器学习中均有巨大的价值,因此在此对周志华老师《机器学习》第三章线性模型相关内容做出精简的总结。
一、线性模型基本形式
线性模型一章的基础。
给定由d个属性描述(特征)的样本x=(x1,x2,……,xd),其中xi是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数
一般用向量形式写成:
其中与
学得之后即可确定。
线性模型的概念很简单,但却是接下来线性回归与线性分类的基础,从线性模型的基本概念中,我们可以得到以下几点:
1、线性模型易于建模,我们可以以线性模型为基础进行非线性拟合。
2、由于的存在,线性模型有着很好的可解释性,如
表达了
各分量在预测时的重要性。
二、线性回归
本章讨论的主要是有监督学习。
对于有监督学习,总结如下:
训练对象:数据集D
其中为d维样本,
为一维标签,用于指明样本所属类别。
训练目标:求得,使
接下来我们将讨论最基础的线性回归。
1、线性回归的最基础模型
继承上面的有监督学习部分,对于线性回归的最基础模型,求解/训练的方法可以概括为:选定某种性能度量方法,求使之最优时的
。
有监督学习 | 错误率/精度 |
---|---|
均方误差 | |
查准率、查全率、BEP、F1 | |
ROC、AUC | |
代价敏感错误率、代价曲线 | |
无监督学习 | 紧密性(CP) |
间隔性(SP) | |
戴维森堡丁指数(DBI) | |
邓恩指数(DVI) |
我们选择均方误差为例:
均方误差:
当与
差别最小时,均方误差最小,因此我们试图训练/求解
使均方误差最小化 。
具体写为:
在线性回归时,其几何意义是:找到一条直线,是所有样本到直线上的欧氏距离之和最小。
那么如何使其最小?
最简单的,我们对对
分别求偏导,当其为0时,有
最小,此时的
即是我们需要的。
在求导前,我们可能需要先对数据进行处理,使之便于计算。
我们使:
注:'";"表示数组竖直堆叠
为了便于理解,我们列出各个变量的大小:
系数向量,我们可称之为特征向量/特征矩阵 | d*1 | |
合并w、b,w在上,b在下 | (d+1)*1 | |
标签 | 数值 | |
所有标记的向量形式 | n*1 | |
有d维特征的样本 | d*1 | |
见公式,一行为[一个样本的d维特征,1] | n*(d+1) |
明晰其大小后,我们就可以方便的理解下面的公式:
注:此处的为我们预测的标签,而非训练样本给定的标签。
基于以上,我们的目标函数可写为:
注:理解为使最小时的
的取值,
的结果是一个数值
现在可以求导了,对目标函数求导可得:
我们需要得到该式为0时的值,看起来很复杂,这里有直接的结论:
当为正定矩阵时,式为0时有:
当不是正定矩阵时,我们或可解出多个
,此时我们可以引入正则化以选择某一个。
好了!到此为止,就解出训练好的了!
当样本不为向量,我们有更简便的解法,具体公式见西瓜书。
2、广义线性模型
使预测值逼近y的衍生物,即:
注:g:联系函数,必须是单调可微的
这就实现了我们在之前提到过的以线性模型为基础进行非线性拟合,更多的,还有神经网络模型,也是以线性模型为基础进行非线性拟合,且原则上,它可以拟合任意非线性函数。
3、对数几率回归
使用上面基础的线性回归模型,我们可以用样本的特征属性预测其对应y的值,这里的y可以连续变化,使连续值。放到真实世界里举例,y可以是对某季度销售额的预测,可以是某人的身高的预测(其范围是不定的),但是,如果我们想用线性回归模型完成分类任务呢?
一个可行的方法是:
以某值为界限,
当时,样本i为正例;
当时,样本i为反例;
当时,样本i随意分类。
不过我们还有更好的方法,就是对数几率回归。
对数几率回归是广义线性模型的特例,其联系函数为对数几率函数(sigmoid):
代入线性模型,就是:
此时,我们有:
以0.5为界限,
当时,样本i为正例;
当时,样本i为反例;
当时,样本i随意分类。
sigmoid函数将范围不定的线性回归约束至(0,1),且逼近于阶跃函数,使分类更加清晰明确。它还有一个优点是:它是线性可微的,且对任意阶可导,这使它有很好的数学性质。sigmoid函数广泛应用于机器学习中,是神经网络最常见的函数。
另外,我们还可以将上面的对数几率回归模型变化为:
对该式:
表示样本
作为正例的可能性
表示样本
作为反例的可能性
二者的比值成为几率(odds),反映了
作为正例的相对可能性
则为对数几率(log odds / logit)
基于此,我们可以看到对数几率回归不仅可以预测分类,更给出了近似概率预测。
三、线性分类
实际上,对数几率回归就是用于分类的模型,但在此,我们讨论一些专门用于线性分类的模型。
1、多分类学习
对于n个类别C1,C2,C3……Cn,多分类学习的基本思路是拆解法,即将多分类任务拆分为若干个二分类问题求解。
经典的拆分策略有三种:
“一对一”(OvO):将n个类别两两配对,从而产生个二分类任务,最终得到
个分类结果,把被预测的最多的类别作为最终的分类结果。
“一对其余“(OvR):每次将一个类作为正例,其余作为反例,共训练n个分类器。若出现仅有一个分类器预测为正类,则对应类别为最终分类结果;若多个分类器预测为正类,则考虑各个分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
”多对多“(MvM):每次将若干个类作为正类,其他类为反类,共划分M次。正、反类构造需要有特殊的设计,不能随意划分,最常用的MvM技术是”纠错输出码“(EOOC),该部分知识在西瓜书上有详细的介绍,在此不再赘述。
待更新………………
以上思路均来源于周志华老师《机器学习》第三章,仅为个人的理解,如有错误欢迎指正。