《机器学习》——周志华第三章(线性模型)总结
3.1基本形式
线性模型的向量形式:
其中x=(x1,x2...),x1表示示例x在第1个属性的取值。w表示个各属性在预测中的重要性。例如
表示通过色泽、根蒂和敲声来判断是否好瓜,其中根蒂最重要,再者敲声,最后色泽
3.2线性回归
线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。即试图学得
确定w和b关键在于衡量f(x)和y之间的差别
对离散属性,若属性之间存在”序“关系,可通过连续化将其转化为连续值。例如二值属性“身高”的取值高和矮可转化为{1.0,0.0},三值属性“高度”取值高、中、低可转化为{1.0,0.5,0.0},若属性之间不存在序关系,假定由k个属性值则转化为k维向量,例如“瓜类”的取值西瓜、南瓜、黄瓜可转化为(0,0,1),(0,1,0),(1,0,0)
均方误差是回归任务中最常用的性能度量,试图让均方误差最小化
机器学习基础篇——均方误差 - 东方神剑的个人页面 - 开源中国
均方误差对应了常用的欧几里得距离或简称欧氏距离。
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”,在线性回归中最小二乘法试图寻找一条直线,使所有样本到直线上的欧式距离最小
求解w和b使
最小化的过程,称为线性回归模型的最小二乘“参数估计”。让它分别对w和b求导,得到
令式(3.5)和(3.6)为0可得w和b最优解的闭式解(为x的均值)
假设样本由d个属性描述,“多元线性回归”试图学得
可利用最小二乘法对w和b进行估计,把w和b吸入向量形式=(w;b),把数据集D表示为m(d+1)大小的矩阵X,每行对应一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素均置为1,即
再把标记写成向量形式y=(y1;y2;...;ym),类似于式(3.4),有
当为满秩矩阵或正定矩阵,令式(3.10)为0可得
满秩矩阵:满秩矩阵_360百科
然而,在现实任务中,我们会遇到大量的变量,数目甚至超过样例数,导致X的列数多余行数,往往不是满秩矩阵,此时可以解出多个,它们都能使均方误差最小化,选择哪一个解作为输出,将由学习算法的归纳偏好决定,常用做法是引入正则化项。
假设我们认为示例对应的输出标记在指数尺度上变化,可将输出标记的对数作为线性模型逼近的目标,即
这就是“对数线性回归”,实际上是在试图让
逼近y,式(3.14)在形式上仍是线性回归,实质上是在求输入空间到输出空间的非线性函数映射,如图3.1所示,这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
考虑单调可微函数g(),令
这样得到的模型是“广义线性模型”,其中函数g()称为联系函数,对数线性回归是广义线性模型在g()在In()的特例
3.3对数几率回归
对于分类任务,在式(3.15)的广义线性模型中,只需找到一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
对于二分类任务,输出标记y{0,1},而线性回归模型产生的预测值
是实值,于是将实值z转化为0/1值,用到“单位阶跃函数”
若预测值z大于0就判为正例,小于0判为反例,为临界值可任意判别,如图3.2所示
但从图3.2看出,单位阶跃函数并不连续,希望找到一个一定程度上近似单位阶跃函数的“替代函数”并且它单调可微,对数几率函数是一个常用的替代函数:
图3.2可以看出对数几率函数将z值转化为一个接近0或1的y值,并且输出值在z=0附近变化很陡,将对数几率函数作为()代入式(3.15),得到
类似于式(3.14),式(3.18)可变化为
若y为样本x作为正例的可能性,则1-y是反例可能性,两者的比值称为几率,反映了x作为正例的相对可能性,对几率取对数得到对数几率,可看出式(3.18)是在用线性回归模型的预测结果逼近真实标记的对数几率,因此对应的模型称为“对数几率回归”,虽然名字是回归,但是是一种分类学习方法。优点是它直接对分类可能性进行建模,无须事先假设数据分布,避免了假设分布不准确带来的问题,它不是预测出“类别”,而是可得到近似概率预测,对需利用概率辅助决策的任务很有用。
先验概率与后验概率的区别 - sjyttkl的专栏 - CSDN博客
确定式(3.18)中的w和b,若将式(3.18)的y视为类后验概率估计p(y=1|x),则式(3.19)重写为
通过极大似然法来估计w和b,对率回归模型最大化“对数似然”,最大化式等价于最小化
式(3.27)是关于的高阶可导连续函数,求其最优解得到
以牛顿法为例,其第t+1轮迭代解的更新公式为
其中关于的一阶、二阶导数为
3.4线性判别分析
线性判别分析(简称LDA)是一种经典的线性学习方法,也称“Fisher判别分析”。它给定训练样例集,将样例投影到一条直线上,使同类样例的投影点尽可能接近 、异样样例的投影点尽可能远离;对新样本分类时,将其投影到同样的这条直线上,根据投影点的位置确定新样本的类别,图3.3是一个二维示意图
要使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,即尽可能小,要使异类阳历的投影点尽可能远离,可以让类中心之间的距离尽可能大,即尽可能大。则可以得到欲最大化的目标
类内散度矩阵:
类间散度矩阵:
式(3.32)可重写为
这是LDA欲最大化的目标,即与的“广义瑞利商”
确定w的值:
当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类。
将LDA推广到多分类任务中,假定存在N个类,且第i类示例数为,u是所有示例的均值向量,“全局散度矩阵”:
将类内散度矩阵重定义为每个类别的散度矩阵之和,即
常使用如下方法来实现多分类LDA:优化目标
式(3.44)可通过如下广义特征值问题求解:
多类分类LDA将样本投影到N-1维空间,N-1通常远小于数据原有的属性值,可通过这个投影来减小样本点的维数,投影过程使用了类别信息,因此LDA也被称为一种经典的监督降维技术
3.5多分类学习
基本思路是将多分类学习任务拆为若干个二分类任务求解,三种拆分策略:“一对一”(OvO)、“一对其余”(OvR)和“多对多”(MvM)
假设数据集有N个类别,OvO将为区分类别和训练一个分类器,该分类器把D中的类样例作为正例,类样例作为反例,在测试阶段,新样本将同时提交给所有分类器,得到N(N-1)/2个分类结果,把被预测得最多的类别作为最终分类结果,图3.4是示意图。OvR每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器,在测试时若仅有一个分类器预测为正类,则对应的类别标记为最终分类结果,若有多个分类器预测为正类,则选择置信度最大的类别标记作为分类结果,图3.4是示意图。MvM是每次将若干个类作为正类,若干个其他类作为反类。常用MVM技术“纠错输出码(简称ECOC)”构造MvM的正、反类。
ECOC的工作过程:1、编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分为反类,形成一个二分类训练集,一共产生M个训练集,训练出M个分类器 2、解码:M个分类器分别对测试样本进行预测,这些预测标记形成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分通过“编码矩阵”指定,常见的编码矩阵有二元码和三元码,前者将类别指定为正类和反类,后者在正反类之外还可以指定“停用类”,图3.5是示意图,在a图中分类器f2将C1和C3类的样例作为正例;若基于欧式距离,预测结果是C3
3.6类别不平衡问题
定义:分类任务中不同类别的训练样例数目差别很大。之后我们假设正类样例数较少,反类样例数较多。
用对新样本x进行分类,实际上在用预测的y值与一个阈值比较。分类器决策规则为若>1则预测为正例。(式3.46)令m+表示正例数目,m-表示反例数目,则观测几率为,假设训练集是真实样本总体的无偏采样,因此观测几率代表真实几率,因此若>则预测为正例(式3.47)。要做到分类器是基于式(3.46)决策,实际在执行式(3.47),也就是类别不平衡学习的一个基本策略:“再缩放”,只需令
再缩放有三种做法:1、“欠采样”:去除一些反例使得正反例数目接近 2、“过采样”:增加一些正使得正反例数目接近 3、直接基于原始训练集学习,但在用训练好的分类器预测时,将式(3.48)嵌入到决策过程中,称为“阈值移动”
“再缩放”是“代价敏感学习”的基础,在代价敏感学习中将式(3.48)中的m-/m+用cost+/cost-代替即可