这一章从线性回归入手,然后从广义线型回归引入对数几率回归来解决二分类问题,再引入多分类,但是无论无论是前面提到的二分类还是多分类的解决办法都是在以不同类训练样本数相同的前提下进行筛选选择器的,所以最后介绍了类别不平衡应该怎么办。
3.1基本形式
线性模型:可以通过属性的线性组合来进行预测的函数,即
该式子一般用向量表示:
【注】,只要w和b确定模型就可以确定,表示各属性在预测中的重要性
3.2线性回归
线性回归:试图学得一个线性模型来尽可能的预测真实输出标记。
最简单的线性回归
只有一个输入属性;对于离散属性,若其有序则通过连续化转化为连续值,若不存在序关系则转化为向量。
【例】属性体重“胖”“瘦”可以转化为{1.0,0.0};没有序关系属性如“瓜类”的取值“西瓜、南瓜、黄瓜”则转化为(0,0,1)(0,1,0)(1,0,0)。
线性回归试图得到:①
那么要如何求得呢?这里用“最小二乘法”来求解,即均方误差最小化,②
通过对均方误差最小化分别对w,b求偏导令其为0,得到③,④,其中为x的均值。
整理一下思路:线性回归要得到式子①,那么①里面的未知数怎么求,利用②式子最小二乘法求,通过对②求偏导等于0,来得到解,即式子③和式子④
多元线性回归
输入多个属性,试图得到
这里将把数据集D用m*(d+1)的矩阵来表示。
根据前面最小二乘法令,对求导等于零来得到解。
假设当为满秩矩阵或正定矩阵时,回归模型为。
【注】现实任务往往不满秩,所以会有多个,此时结果由算法的学习偏好决定。
广义线性模型
【注】为单调可微函数,被称为联系函数,将线性回归模型的预测值与真实标记联系起来
3.3对数几率回归
这一节介绍了分类,通过广义线性模型找到一个单调可微函数将分类任务的真实值与线性回归的预测值联系起来即可。
这里用对数几率函数:来充当g(x),从而得到①
对式子①进行变换得到②
【注】若将y作为样本x为正例的可能性,那么则称为“几率”,称为“对数几率”。
那么如何求得,这里用了极大似然法(推导就不列出来)。
最后得到一个关于β的高阶可导连续凸函数。通过梯度下降法、牛顿法等都可求得这个函数的最优解
3.4线性判别分析
线性判别分析(LDA):设法将样例投到一条线上,同类样例尽可能接近,不同样例间尽可能远离,将新样例投到线上通过其位置来分类。简单点就是正例尽量投在一起,反例投一起,正反例尽可能远离,拿到新样例投上去看更接近哪。
【注】+表示正例,-表示反例
二分类线性判别分析
数据集,令分别表示类示例的集合、均值向量、协方差矩阵,表示直线。
线性判别分析有两个目标:①同类样例投影点尽可能接近,即同类投影点协方差()尽可能小②异类尽可能远离,即类中心点之间的距离()尽可能大。所以同时还要考虑二者,则可以得到最大化目标①。
定义“类内散度矩阵”
定义“类间散度矩阵”,
将式子①重写为这就是LDA要求的最大化目标,即的“广义瑞利商”
那么怎么求呢?因为上式分子分母都有二次项所以解长度无关只和方向有关。
由拉格朗日乘子式得(λ是拉格朗日乘子)
又因为方向衡为,所以令代入上式最终得。
多分类线性判别分析
假设存在N个类,且第i类示例数为;
定义“全局散度矩阵”①
【注】是所有示例的均值向量
定义“每个类别的散度矩阵之和”②
【注】
由上式①和②得,所以多分类LDA有多种实现方法,使用任何两个就可以了。
3.5多分类学习
多分类学习一般使用拆解法,即拆分为若干个二分类任务求解。
①“一对一(OvO)”将N个类别两两配对得到N(N-1)个二分类任务,将两个类别训练一个分类器,共有N(N-1)个,最终得到N(N-1)个预测结果,出现次数最多的类别为最终分类结果。
②“一对其余(OvR)”每次把一个类的例子作为正例其他为反例,来训练出N个分类器,在测试时若只有一个分类器预测出正例,则对应类别标记作为最终结果,若有多个正例,则要考虑分类器的预测置信度,选择置信度最大的类标记作为分类结果。
③“多对多(MvM)”将若干个类作为正类,若干个其他类作为反类。常用MvM技术“纠错输出码简称ECOC”。
ECOC主要分为两步①编码:对N个类别做M次划分,每次将一部分作为正类另一部分为反类,从而形成二分类训练集,训练出M个分类器。②解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分主要通过“编码矩阵”,常见的有二元码(正类、反类)和三元码(正类、反类、停用类)。
【注】+1表示正类,-1表示反类,0表示停用类
【补】对于同一个学习任务,ECOC编码越长纠错越强;对于同等长度编码,任意两个类别之间的编码距离越远,则纠错能力越强。
3.6类别不平衡问题
前面所有提到的分类学习方法有一个前提:即不同类别的训练例数目相同。
类别不平衡:指分类任务中不同类别的训练例数目差别很大的情况。
面对类别不平衡的基本处理方法:
①“欠采样”即除去一些反例,使得正、反例数目接近。常利用集成学习机制,将反例分为若干个集合供不同学习器使用。
②“过采样”即增加一些正例,使得两者数目接近。常使用SMOTE算法,通过对训练集里的正例插值产生额外的正例。
③“阙值移动”按原训练集进行学习,但在使用训练好的分类器预测时,将下面式子①代入决策过程。
【解】“再缩放”。令①来与1比较。
在前面线性分类器我们有几率若其大于1则为正例。但是这是在正反例数目相同的情况下,令,则判断为正例。