机器学习之——线性模型

一、一些理解

    线性模型的表达式中,权重向量直观表达了各个特征在预测中的重要性。它试图学得一个通过属性的线性组合来进行预测的函数。
    线性的意思就是一系列一次特征的线性组合,二维空间为直线,三维空间为平面,推广到n维空间,这就是广义的线性模型。
    线性模型易于建模,常见的广义线性模型有:岭回归,lasso回归,逻辑回归,线性判别分析,Elastic Net等。

1、线性回归

    回归分析本质是函数估计问题(参数和非参数估计),就是找出因变量和自变量之间的因果关系。回归分析的因变量应该是连续变量,若是离散变量则转化为分类问题,回归分析是一个有监督学习问题。
    线性回归试图学得一个尽可能准确预测实值输出类标的线性模型。
    均方误差(平方损失)是回归任务中最常用的性能度量,可衡量预测值和真实值之间的差别,要最小化均方误差。均方误差对应欧氏距离,使用最小二乘法来对其进行求解,当只有一个属性的时候,也就是找到一条直线,使得所有样本到该直线的欧氏距离之和最小。当属性为多个的时候,就变为多元线性回归。
    无论是单变量还是多变量线性回归,我们都可以用最小二乘法对参数w和b进行估计。求解参数w和b最优解的闭式解。
    多元线性回归求解:单变量的好求,但是多变量的时候会涉及到矩阵逆的计算要复杂一些。当系数矩阵为满秩或正定矩阵的时候,我们可以得到唯一解。当不是满秩矩阵的时候,会得到多个解,这时候根据学习算法的归纳偏好决定选择哪个解作为输出项,常用的方法是引入正则化项。
    对数线性回归:令模型预测值逼近y的衍生物,比如输出类标y的对数作为线性模型逼近的目标。形式上虽然还是线性回归,但是映射已经变为非线性函数的映射了。将预测值和真实类标用对数函数联系起来了。
    广义线性模型:对数线性回归是广义线性模型的g(.)联系函数为ln(.)的特例。已经知道如何使用线性模型回归学习,那么如果是分类怎么做呢?在广义线性模型中,我们用一个单调可微函数将分类任务的真实类标y与线性模型的预测值联系起来就可以了。比如说使用单位阶跃函数进行二分类。但是单位阶跃函数并不连续,无法作为联系函数,这时我们希望找到一个近似单位阶跃函数的替代函数,并希望它单调可微。对数几率函数logistic fouction逻辑斯谛克函数就是这样的一个函数。
    对数几率回归:对数几率函数是一个sigmoid函数,sigmoid函数是形似S的函数,它将z值(预测值)转化为接近0或1的y值,将对数几率函数作为联系函数带入广义线性模型中,使用线性回归模型的预测结果去逼近真实标记的对数几率,达到分类的目的,因此其对应的模型也称为对数几率回归,名字是回归实际是分类。
    对数几率回归参数的求解:不再使用误差平方法了,而是最大化对数似然。将式子中的y视为类别的后验概率估计p(y=1|x),代入变形后的对数几率式子,可得p(y=1|x)和p(y=0|x)的表达式,变量为预测值,函数值就是该预测值为某类的概率值。使用极大似然法来估计w和b,对于给定的数据集,对数几率模型最大化对数似然,使得每个样本属于其真实标记的概率越大越好,经过转换后可以变为最小化一个高阶可导连续凸函数,根据凸函数优化理论,可以使用梯度下降、牛顿法来求其最优解。
注意:每个样本对应的真实类标可能都不同。
    线性判别分析LDA:是一种经典的线性学习方法,LDA的思想非常朴素,给定训练样本集,设法将样本投影到一条直线上,使得同样样本的投影点尽可能接近,异样样本的投影点尽可能远离;训练完成后,对新样本分类时,将其投影后根据投影点的位置来确定新样本的类别。
    求解:为了使得同类样本的投影点尽可能近,可使同类样本投影点的协方差尽可能小,为了使得异类样本的投影点尽可能远离,可使异类样本投影点的协方差尽可能大,这样便得到需要最大化的目标也就是类内散度矩阵和类间散度矩阵的广义瑞利商J,它是类内散度和类间散度的比值。有了最大化的目标了,但是如何确定参数w呢?因为w的任何倍数都可以是解,那么让类间散度=1作为一个条件,然后最小化-类内散度就可以了。然后利用拉格朗日乘子法进行求最优解,涉及到对类内散度矩阵的奇异值分解。
    LDA当两类数据同先验,满足高斯分布且协方差相等时,LDA达到最优分类。
    LDA多分类:定义全局散度矩阵St,它是其他两个散度矩阵之和,类内散度矩阵Sw重定义为每个类别的散度矩阵之和,有St和Sw可以求类间散度矩阵Sb。多分类LDA使用三种散度矩阵中的任意两个即可,常见的是采用优化目标——书本上的,然后通过广义特征值问题求解。这时W为矩阵,它可视为一个投影矩阵,将样本投影到d’为空间,d’维数远小于样本原本属性数d。这样就就可以进行降维。
    多分类学习:很多情况下,我们基于一些基本策略,利用二分类学习器解决多分类问题。考虑N个类别,多分类学习的基本思想是“拆解法”,将多分类任务拆解为若干个二分类任务求解,先对问题进行拆分,为拆分出来的每个二分类任务训练一个分类器;在测试时,对这些分类器越策结果进行集成,获得最终的多分类结果。这里的关键是如何对多分类任务进行拆分,以及如何把多个分类器进行集成。
    拆分策略:三种:(1)一对一OvO,(2)一对其余OvR,(3)多对多MvM。
    OVO:将N个类别两两配对,产生N(N-1)/2个二分类任务,也就是有这些分类器。测试阶段,新样本将同时提交给所有分类器,我们得到N(N-1)/2个分类结果,按投票数:被预测的最多的类别作为最终的分类结果。
    OVR:则是每次将一个类作为正例,其余的都作为反例来训练N个分类器。在测试时,若仅有一个分类器预测为正类,则对应的类别标记为最终分类结果。若多个分类器预测结果为正类,那么就考虑分类器的预测置信度,选择置信度最大的类别标记为分类结果。虽然分类器个数少了,但是每个分类器均使用了全部类进行训练。
    MVM:每次将若干个类作为正类,若干个其他的类作为反类。正反类必须有特殊的设计,不能随意选取,比如使用纠错输出码技术。
类别不平衡问题:当不同类别的训练样本数目差距较大的时候,训练的学习器往往没有价值。不仅是二分类中存在该问题,即使是原始问题中不同类别的训练样例数目相当,在使用OVR,MVM策略后产生的二分类任务仍可能出现类别不平衡问题(但会相互抵消,所以不用专门处理)。
    二分类中类别不平衡处理方法
    再缩放:对阈值进行缩放。但是操作不平凡,因为训练集是真实样本总体无偏采样的假设往往不成立,也就是观测几率未必能推断出真实几率。三种处理方法:
    (1)欠采样:对训练集中的反例进行欠采样,去除一些反例使得正反例数目接近。
    (2)过采样:增加正例。
    (3)阈值移动,也就是直接将观测几率嵌入决策过程中。
    注意:过采样不能简单地重复采样,代表方法SMOTE,进行插值产生额外的正例。欠采样可能造成训练集过小,丢失信息,可以采样EasyEnsemble算法,利用集成学习机制,将反例分为若干个集合供不同学习器使用,看起来每个学习器都是欠采样了,全局来看并未丢失信息。

2梯度下降

    使用梯度下降,在逻辑斯谛克(对数几率回归)中求解最小化一个高阶可导连续凸函数的最优解。特征归一化在梯度下降中很重要,可以提升模型收敛速度,提升模型精度。
    流程:随机选择一个初始点w0,重复以下过程:决定梯度的方向,选择步长,更新权重参数。w2 = w1+a x d1.

3牛顿法

    利用迭代点xk处的一阶导数(梯度)和二阶导数(Hessen矩阵),对目标函数进行二次函数近似,然后把二次函数的极小点作为新的迭代点,重复该过程,知道求解满足精度的近似极小值。它比梯度下降的快,且能高度逼近最优值。分为基本牛顿法和全局牛顿法,前者是一种基于导数的算法,每一步迭代方向都是当前点函数值下降的方向。后者是弥补了基本牛顿法需要靠近极小点否则不收敛的缺点,

4局部加权线性回归

    当线性回归出现欠拟合的情况时,局部加权线性回归给预测点附近的每个点赋予一定的权重。使用核函数对附近的点赋予更高的权重,常用的为高斯核。

5岭回归和Lasso回归

    当数据复杂,普通线性回归会出现预测精度不够的情况,若特征之间有相关关系,那么就会增加模型的复杂度。这时需要对特征进行筛选,主要方法有岭回归和Lasoo回归。
    以上情况时有普通的最小二乘法估计模型参数时,参数估计的方差太大,求解出来的模型也就不稳定,在具体取值上与真值有较大的偏差。这时最小二乘估计明显变坏。
    (1)岭回归:在平方误差的基础上增加正则项(L2正则化),正则化参数λ平衡方差和偏差。然后使用最小二乘法求解参数。
    (2)Lasso回归:采用L1正则化,也就是在平方误差的基础上机上L1正则。与机遇L2正则的岭回归不同的是,它的损失函数在wj=0处不可导,因此传统的基于梯度的方法不能直接应用到上述的损失函数的求解中。可采用一些简单的近似的优化算法求解该问题,来近似该优化过程,

6 拟牛顿法

   ** BFGS**算法是使用较多的一种拟牛顿法,
    L-BFGS,因为BFGS算法每次都要储存Hesse矩阵,会浪费空间,实际运算中我们只要搜索方向,L-BFGS中只保留了最近m次的迭代信息,以降低数据的存储空间。

7 CART树回归

    之前的基本的线性回归属于全局的模型,前提假设全局数据之间是线性的,通过拟合所有的样本点,训练得到最终的模型。但是很多非线性问题,特征之间并不是简单的线性关系。CART树回归算法属于一种局部的回归算法,将全局的数据集划分为多份容易建模的数据集,然后在每个局部的数据集上进行局部的回归建模。
    复杂的回归问题:当样本特征和样本的标签之间存在非线性相关关系时。为了实现非线性数据的拟合:
    (1)局部加权线性回归:它是局部的线性模型,可以较好地拟合出局部的数据,但是它属于非参学习算法(每次得到不同的参数,不固定),在每次对数据进行预测时,需要理由数据重新训练模型的参数。如果有一种参数学习算法(学习得到固定的参数),实现对非线性数据的回归最好了。
    (2)分类回归树CART算法:基于树回归的算法是一种基于参数的学习算法,利用训练数据训练完模型后,参数一旦确定,无需再改变。
    CART算法中,树采用一种二分递归分割技术,将当前样本分为左子树和右子树两个子样本集,使得每个节点都有两个分支。因此CART算法生成的决策树是非典型的二叉树。
    处理回归问题的主要步骤:(1)CART回归树的生成;(2)CART回归树的剪枝。
    回归问题中不能像分类一样使用GINI基尼指数来作为划分树的标准,因为样本的标签是连续值的集合。可以使用样本与平均值的差的平方和作为划分回归树的指标。如何划分呢,和分类树中一样,根据某一维特征的值x作为划分的值,分为左右子树。
    CART回归树的剪枝:一直划分下去的时候,会出现一个叶子节点只有一个样本。这种情况容易对训练样本过拟合,但是预测结果很差。所以要对其进行剪枝。分为前剪枝和后剪枝。
    前剪枝:在生成树的过程中剪枝,对深度进行控制,防止生成过多的叶子节点。使用min_sample和min_err参数的调节来控制。
    后剪枝:将训练样本分为两部分,一部分训练CART树模型,一部分对生成的树模型进行剪枝,这部分也叫做验证数据。验证是否过拟合,过拟合了则合并一些叶子节点达到剪枝目的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值