线性回归/局部加权线性回归/岭回归/前向逐步回归算法学习笔记-Python

大家早安、午安、晚安,一起来学习机器学习算法中回归部分的方法啦,每次都是满满的干货,大家看的时候多喝水哈,正文开始!


回归分析(Regression Analysis)-定义与分类

回归分析(Regression Analysis)是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。更具体的来说,回归分析可以帮助人们了解在只有一个自变量变化时因变量的变化量。一般来说,通过回归分析我们可以由给出的自变量估计因变量的条件期望。回归分析是建立因变数  Y(或称依变数,反应变数)与自变数 X(或称独变数,解释变数)之间关系的模型。

回归分析的主要算法包括:线性回归(Linear Regression)、逻辑回归(Logistic Regression)、多项式回归(Polynomial Regression)、逐步回归(Step Regression)、岭回归(Ridge Regression)、套索回归(Lasso Regression)、弹性网回归(ElasticNet)等。

接下来就分别学习下以上的回归方法


1、基于最小均方误差求解回归参数(最小二乘法,ordinary least squares)

线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。用一个方程式来表示它,即Y=a+b*X + e,其中a表示截距,b表示直线的斜率,e是误差项。这个方程可以根据给定的预测变量(s)来预测目标变量的值。通常使用最小二乘法来获取拟合曲线中的回归参数。最小二乘法对于观测数据,它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。

图1
图2

线性回归实例编程实现

1)准备数据:

图3

备注:图3中的代码中,info是从文件中读入的数据,类型是字符串,所以,需要用dtype=float将其转换为数字形式

2)准备线性回归算法,并将原始数据点和拟合后的曲线绘制出来

图4
图5

计算到这里,我感觉很多朋友要提问了,1)基于图2中的最小二乘法来求解平方误差时,若xTx不存在逆矩阵怎么办?2)当数据量很大时,求解矩阵乘法及其逆矩阵,是不是很困难呢?3)如何判断模型拟合的效果,是否出现欠拟合和过拟合?...接下来的内容会逐步解决哈(备注:先给出欠拟合和过拟合的直观展示)

图6 不同程度的拟合对比

2、局部加权线性回归(Locally weighted linear regression, LWLR)

观察上图6中不同的拟合程度可以发现,对特征的不同把握程度,将影响曲线的拟合程度。图6中的欠拟合现象,表明没有明确的把握数据结构关系;而过拟合现象,则是太过于沉溺于符合训练数据,太沉溺与每个细节,导致没有把握全局数据走向,不能很好的预测待测试的数据。针对欠拟合现象,局部加权线性回归算法应运而生。

其实,在预测某一个数据点时,它周围的点对预测他的取值的参考性要更加大,因此,可以考虑加重这个带预测值周围点的权重。这就是局部加权线性回归算法的基本思想,用式子可以表示为:

图7 局部加权线性回归

接下来,再看一个局部加权线性回归的栗子

图8 局部加权线性回归算法实现

因为,不同的k会影响最终的预测值y,所以,可以对比不同的k的拟合效果,观察是否欠拟合或者过拟合。

图9 对比不同k值对局部加权线性回归拟合效果的影响-代码

备注:在这个画图中,需要先对数据进行排序,否则画面太美,不忍直视,经验之谈,捂脸

图10 对比不同k值对局部加权线性回归拟合效果的影响-效果图

不难发现,k=0.25之前,处于欠拟合的状态;k=0.01及更小的数值时,效果难以直视,过拟合太严重;k=0.15左右时效果还行。因此,k的选择很重要。

以上,局部加权线性回归算法较好的解决了欠拟合的现象,但是它增加了一定的计算量,同时,如何确定k也需要在实际应用中好好测试。

最小二乘法、局部加权线性回归方法都基于X_T*X存在逆矩阵,也就是他是满秩矩阵,实际表示这些特征值之间不相关。辣么,如果特征内,有一些特征是相关的,那么势必造成特征矩阵的非满秩,此时|X_T*X|趋于0,无法进行后面的回归参数的计算。肿么办,接下往下看~

3、岭回归(Ridge Regression)

如果数据的特征的数目比样本的数目还多,那么输入数据的矩阵X将不是满秩矩阵(可以认为是列向量也就是特征值之间具有相关性)。非满秩矩阵不存在逆矩阵,也就是出现了我们上面一直强调的问题。上面提到的两种方法都用不上了。岭回归赶来帮忙啦。

图11 岭回归的定义

在图11中,w叫做岭回归估计,λ为岭参数,以w的函数为因变量,以k为自变量,构成了岭迹图。岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘法,通过放弃最小二乘法的无偏性,损失部分信息、降低精度为代价获得回归系数更为符合实际、更为可靠的回归方法,对共线性数据的拟合要强于最小二乘法。岭回归中回归系数的来源是通过最优化下列模型来得到的(β就是图11中的w):

图 岭回归模型

先看一下岭回归的编程实现。

1)准备数据

图12

2)岭回归系数的计算

图13

备注:在计算岭回归参数之前,需要将数据进行标准化。在此过程中,将λ进行指数级的变化,从e^-10~e^20。下面的图表示岭回归估计与λ对数的关系。

图14 岭回归估计与岭参数的相互关系

当λ为0时,结果跟普通意义的多元线性回归的最小二乘解完全一样;在λ较小时,各个回归系数比较大;当λ增大时,各个回归系数取值迅速减小,即从不稳定趋于稳定。上图中类似喇叭形状的岭迹图,一般存在多重共线性。(因为有8个特征值,所以回归系数之也有8个,对应8条曲线)

λ选择:一般通过观察,选择喇叭口附近的值,此时各个回归系数趋于稳定,而且预测值与实际值的平方误差不太大。但是也不能选太大的λ,因为,上图中,貌似随着λ的增大,回归系数的取值大小趋于稳定,但是实际对应的平方误差已经非常大了。为了定量地找到最佳参数值,还需要进行交叉验证。另外,要判断哪些变量对结果预测最有影响力,可以观察上图中对应系数的大小。

关于上述λ的变化,我觉得知乎上一个大牛解释的值得参考,我截个图:

图15

我觉得图15中知乎大牛的解释,可能较好的说明了图14中粉色和黄绿色曲线代表的回归参数的取值变化。当然,如果理解的不对,请大牛告知一下,非常感谢。

既然上述提到岭回归中的岭参数比较难确定,辣么,是不是有改进的方法呢?

4、套索方法(Lasso,The Least Absolute Shrinkage and Selection Operator)

机器学习实战中书表示:在增加如下图16约束时,普通的最小二乘法回归会得到与岭回归的一样的公式:

图16

上式限定了所有回归系数的平方和不能大于λ。使用普通的最小二乘法回归在当两个或更多的特征相关时,可能会得出一个很大的正系数和一个很大的负系数。正是因为上述限制条件的存在,使用岭回归可以避免这个问题。与岭回归类似,另一个缩减方法Lasso也对回归系数做了限定,对应的约束条件如下:

图17

Lasso中对回归参数的限制,在λ较小时,一些系数会因此被迫缩减到0,这个特性可以帮助我们更好地理解数据。但在这个新的约束条件下求解回归系数,需要使用二次规划算法,极大的增加了计算复杂度,不太适用。

5、前向逐步回归算法

前向逐步回归算法属于一种贪心算法,即每一步都尽可能减少误差。一开始,所有的权重都设置为1,然后每一步所做的决策是对某个权重增加或减少一个很小的值。

图18 前向逐步回归算法伪代码
图18 前向逐步回归算法代码实现

回归算法先写到这里吧,其他回归算法以后接着学,希望对大家有所帮助,也请大牛不吝赐教,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容