美文网首页
第三章 线性回归

第三章 线性回归

作者: 康君爱上了蕊酱 | 来源:发表于2018-08-21 11:09 被阅读0次

    基本形式

    公式表示:f(x)=w_1x_1+w_2x_2+...+w_dx_d+b特点有:形式简单,易于建模,容易解释。

    线性回归

    线性回归的目的就是学得一个线性模型尽可能准确的预测实际输出标记,这个过程可以称为线性回归

    给定一个数据集D= \lbrace (x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m) \rbrace其中x_i=(x_{i1};x_{i2};\ldots;x_{id}),y_i \in R公式中m:样本个数,d:属性个数。

    对于这样一个数据集我们想要对其进行线性回归,核心就是模型:f(x_i)=wx_i+b \implies f(x_i)\approx y_i
    使预测值和真实标记尽量接近,接近程度通过均方误差来度量
    E(w,b)=\sum^m_{i-1}(y_i-wx_i-b)^2
    通过使均方误差最小,来解的对应的最优w,b,从而确定线性模型。

    这整个过程就是线性回归的过程,特点有以下:

    • 采用均方误差来进行度量,均方误差对应着几何意义,欧几里得距离“欧式距离”,这种方法就是最小二乘法,就是找到一条直线,使得所有样本对应的点到之间的欧式距离最小。
    • 在计算距离之前,我们要确定各个属性的各种取值之间是否有“序”的关系,因为这会影响到会面距离的计算。如果有,例如(高,中,底),将其连续化为(1,0.5,0);如果没有,例如(红色,黄色,绿色),将其转化为多维向量((1,0,0),(0,1,0),(0,0,1))。

    除了基本的线性模型外,还有拓展形式:
    y=g^{-1}(w^Tx+b)
    这种形式称为“广义线性模型”,其中g(\cdot)称为“联系函数”,例如当g(\cdot)=ln(\cdot)的时候,模型为
    y=ln^{-1}(w^Tx+b)
    称为“对数线性模型”。

    对数几率回归

    当进行分类的任务时,如何将预测的输出标记对应到具体的类别呢?

    首先,类别需要一个数字的表示方式,比如:\lbrace0,1\rbrace分别表示两个类别(正例,反例);然后,需要根据预测输出标记y数值的不同将样本对应到不同的类别,就需要一个合适的g(\cdot);最后,通过计算方法得到模型参数w,b

    g(\cdot)的选择有:

    • 理想选择:单位阶越函数
      y=\begin{cases} 0,& \text {z<0} \\0.5,& \text {z=0}\\1,& \text {z>0}\end{cases}
      特点:相当于阈值直接将预测输出标记转化为类别,但是这个函数不连续,没有办法直接使用。
    • 替代选择:对数几率函数
      y=\frac1{1+e^{-z}}
      这个函数属于一种“Sigmoid函数”,即形状类似与S的函数。将z转化为接近0或者1的数值,而且在z=0附近十分陡峭。将y=w^Tx+b带入z得到:
      y=\frac1{1+e^{-(w^Tx+b)}}
      整理得到:
      ln \frac y{1-y}=w^Tx+b
      式子中y可以看做是样本为正例的概率,1-y就是为反例的概率,比值就是几率,整个式子就是对数几率函数。这个式子就是用预测结果来逼近真实标记的对数几率回归,所以这种方法就叫对数几率回归
      特点:称作回归,实际上是一种分类学习方法;直接对可能性进行建模,不受分布的影响;预测类别,还能得到近似概率预测;数学性好,可以计算得到最优解。

    线性判别分析

    线性判别分析(LDA)是一种通过投影距离来分类的线性学习方法,也称为“Fisher判别分析”。

    • 思路
      首先,将所有样本投影到直线上,然后使同类样本之间的距离尽可能小,不同样本之间的距离尽可能大,从而确定直线。
    • 衡量
      某一类样本的中心在直线上的投影:w^T\mu_i,用来衡量不同类样本之间的距离。某一类样本所有投影的协方差:w^T \sum_iw,用来衡量同类样本之间距离。
    • 例子
      以二分类问题为例,类之间的距离尽可能大,就是w^T\mu_0-w^T\mu_1尽可能大,类内的距离尽可能小,就是w^T \sum_0w+w^T \sum_1w尽可能小。将两者相除构建:
      J=\frac{\mid\mid\ w^T\mu_0-w^T\mu_1\mid\mid^2_2}{w^T \sum_0w+w^T \sum_1w}
      这个式子取值尽可能大就可以满足上述两种需求,为了简化定义类内散度矩阵S_w=\sum_0+\sum_1类间散度矩阵S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T,所以:
      J=\frac{w^TS_bw}{w^TS_ww}
      此公式就是LDA最大化的目标,S_bS_w的“广义瑞利商”。
    • 推广
      w作为一个投影矩阵的时候,可以实现多分类LDA,投影到的w空间的维数一般都比原有属性维数低,因此LDA也可以看做是一种监督降维技术。

    多分类学习

    多分类学习就是通过对多种类数据的学习,能够对新样本进行准确分类的过程。主要思路就是,将多分类问题分解为多个二分类问题,产生多个学习器,形成多个结果,然后集成一个最终的结果。对于数据集D=\lbrace (x_1,y_1),(x_2,y_2),...,(x_m,y_m)\rbrace,y_i \in \lbrace C_1,C_2,...,C_N \rbrace,方式有以下三种:

    • 一对一(OvO)
      将N个类别两两配对,一类为正,一类为负,每次进行二分类学习,得到N(N-1)/2个分类器,对新样本进行预测得到N(N-1)/2个结果,取分类结果出现最多次数的结果。
    • 一对剩余(OvR)
      每次将一个类别作为正类,其他所有类别作为反类,每次进行二分类学习,得到N个分类器,对新样本进行预测得到N个结果,N个结果中唯一的一类就是对应的分类结果。
    • 此两方式对比
      分类的性能取决于数据的分布,多数情况下两者的分类性能相同。对于计算性能的需求,类别较少的时候,OvO的计算量高于OvR,因为学习次数的差别,当类别增多,OvR每次学习计算所有的类别,所有的计算量就会高于OvO。
    • 多对多(MvM)
      每次将多个类别作为正类,多个类别作为反类,正反类的构造必须特殊设计,不能随意选取,这里介绍“纠错输出码”。
      过程主要分为两步,首先对N个类别进行m次划分,进行学习得到m个分类器,这个过程称为编码;然后对新样本进行m次预测得到一个由\lbrace+1,-1\rbrace或者\lbrace+1,-1,0\rbrace组成的m元向量,同时D中的每一类也有自己对应的m元向量,计算新样本和所有类别之间的距离(海明距离,即向量中不同元素的个数、欧式距离),取最小距离的类别作为最终的分类。
      特点主要就是它的纠错能力,少数分类器的分类错误能够被多数分类器分类正确而弥补,编码长度越长(划分次数,学习器数目)越多,纠错能力越好,同时类别的组合数目有限,编码超过一定长度就会失去意义,还浪费计算量。然后,等长的编码,类别之间的距离越长,纠错能力越好,通常这点不去考虑,因为非最优编码在实践中已经能够产生足够好的分类器。

    类别不平衡问题

    类别不平衡指在训练集中的正反类样本数目不想当。这种情况会导致学习器效果下降。例如:998个反例,2个正例,只要形成一个只返回反例的学习器就能达到99.8%的精度。

    二分类任务中,在一个训练集中,假设有m^+个正例,m^-个反例,正例的观测几率为\frac{m^+}{m^-}。我们使用y=m^Tx+b对结果进行预测,\frac{y}{1-y}就是正例的推测真实几率,大于观测几率的时候,就认为是正例。当正反例数目相当的时候,观测几率近似为1。当数目不想等的时候,我们对推测真实几率进行再缩放\frac{y'}{1-y'}=\frac y{1-y} \times \frac{m^-}{m^+},然后大于1就认为是正例。(再缩放是代价敏感学习的基础)

    这个过程中一个很关键的假设就是训练集中的样本来自真实样本的无偏采样,而往往不能实现,因此有以下解决办法:

    • 欠采样
      减少样本数目多的类别样本数目。这种方法多将多的一方进行划分,进行多次学习,这样,单次学习为欠采样,整体不会丢失信息。
    • 过采样
      增加样本数目少的类别样本数目。注意这种方法不能重复采样。
    • 阈值移动
      原训练集进行训练,得到学习器,在预测的过程中将缩放嵌合进去。

    相关文章

      网友评论

          本文标题:第三章 线性回归

          本文链接:https://www.haomeiwen.com/subject/zkrdiftx.html