LARS 最小角回归算法简介
最近开始看Elements of Statistical Learning, 今天的内容是线性模型(第三章。。这本书东西非常多,不知道何年何月才能读完了),主要是在看变量选择。感觉变量选择这一块领域非常有意思,而大三那门回归分析只是学了一些皮毛而已。过两天有空,记一些ESL这本书里讲的各种变量选择方法在这里。
先讲一下今天看到的新方法,所谓的LARS(Least Angle Regression)。
LARS是大神Efron他们搞出来做变量选择的一套算法,有点像Forward Stepwise(向前逐步回归),但和Forward Stepwise不同点在于,Forward Stepwise每次都是根据选择的变量子集,完全拟合出线性模型,计算出RSS,再设计统计量(如AIC)对较高的模型复杂度作出惩罚,而LARS是每次先找出和因变量相关度最高的那个变量, 再沿着LSE的方向一点点调整这个predictor的系数,在这个过程中,这个变量和残差的相关系数会逐渐减小,等到这个相关性没那么显著的时候,就要选进新的相关性最高的变量,然后重新沿着LSE的方向进行变动。而到最后,所有变量都被选中,估计就和LSE相同了。
LARS的算法实际执行步骤如下:
1. 对Predictors进行标准化(去除不同尺度的影响),对Target Variable进行中心化(去除截距项的影响),初始的所有系数都设为0,此时残差 r 就等于中心化后的Target Variable
2. 找出和残差r相关度最高的变量X_j
3. 将X_j的系数Beta_j 从0开始沿着LSE(只有一个变量X_j的最小二乘估计)的方向变化,直到某个新的变量X_k与残差r的相关性大于X_j时
4. X_j和X_k的系数Beta_j和Beta_k,一起沿着新的LSE(加入了新变量X_k的最小二乘估计)的方向移动,直到有新的变量被选入
5. 重复2,3,4,直到所有变量被选入,最后得到的估计就是普通线性回归的OLS
从上面这个算法可以看出,LARS这个东西明显和OLS, Ridge Regression等给出了Closed-form solutions的模型不同,而是给出了一套对计算机来说非常友好的算法。这也说明了随着计算机能力的强大,现代统计基本上越来越靠近算法,而和模型无关。
这个算法看完以后,我就试图用R实现这套算法,最后还没有美化过的效果图如下,左边是后来找到的Efron他们写的lars包做出来的效果,乍看之下还是很像,但是我发现有一些地方貌似有出入(我的程序似乎有一些变量过早地被选入了。。),目前还不知道哪里出了错,回头仔细看看。至于代码神马的,由于写的太乱了,过两天写的好看一点再发上来.
参考文献:
http://blog.sina.com.cn/s/blog_61f1db170101ca8i.html
LARS 算法简介:https://cosx.org/2011/04/an-introduction-to-lars
热门数据挖掘模型应用入门(一): LASSO 回归,https://cosx.org/2016/10/data-mining-1-lasso/
LARS 最小角回归算法简介的更多相关文章
- Lasso回归算法: 坐标轴下降法与最小角回归法小结
前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结.里面对线程回归的正则化也做了一个初步的介绍.提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归.但是对 ...
- 机器学习方法:回归(三):最小角回归Least Angle Regression(LARS),forward stagewise selection
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 希望与志同道合的朋友一起交流,我刚刚设立了了一个技术交流QQ群:433250724,欢迎对算法.技术.应用感 ...
- A-06 最小角回归法
目录 最小角回归法 一.举例 二.最小角回归法优缺点 2.1 优点 2.2 缺点 三.小结 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等 ...
- 最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
Lasso回归模型,是常用线性回归的模型,当模型维度较高时,Lasso算法通过求解稀疏解对模型进行变量选择.Lars算法则提供了一种快速求解该模型的方法.Lars算法的基本原理有许多其他文章可以参考, ...
- 从最小角回归(LARS)中学到的一个小知识(很短)
[转载请注明出处]http://www.cnblogs.com/mashiqi (居然有朋友说内容不接地气,那么我就再加一段嘛,请喜欢读笑话的同学直接看第二段)假设这里有一组向量$\left\{ x_ ...
- Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS
Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...
- Gradient Boosting算法简介
最近项目中涉及基于Gradient Boosting Regression 算法拟合时间序列曲线的内容,利用python机器学习包 scikit-learn 中的GradientBoostingReg ...
- webrtc 的回声抵消(aec、aecm)算法简介(转)
webrtc 的回声抵消(aec.aecm)算法简介 webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) ...
- 机器学习之logistic回归算法与代码实现原理
Logistic回归算法原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10033567.html ...
随机推荐
- [NOIP2017普及组]棋盘
题目 题目描述 有一个m × m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的),你只 ...
- Hadoop HDFS, YARN ,MAPREDUCE,MAPREDUCE ON YARN
HDFS 系统架构图 NameNode 是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等.NameNode将 ...
- python3下爬取网页上的图片的爬虫程序
import urllib.request import re #py抓取页面图片并保存到本地 #获取页面信息 def getHtml(url): html = urllib.request.urlo ...
- typeHandler
package com.cainiao.aeye.chdir.manager.tddl.Handler; import com.cainiao.aeye.chdir.core.enums.AudioF ...
- inodes 相关信息查看
查看inode数量 df -ih 查看磁盘信息 tune2fs -l /dev/sdc1 查看相关目录信息 /data/osd.3/bean_test/7/8/9# debugfs /dev/sdc2 ...
- ltp-ddt emmc_dd_rw
emmc_dd_rw EMMC_M_FUNC_DD_RW_500M source "common.sh"; install_modules.sh "emmc"; ...
- ajax基本用法介绍
使用ajax需要同时在模板中引用jQuery,ajax基本使用方法如下: $.ajax({ url:'url', type:'POST', data:{'k1':v1,'k2':v2,}, dataT ...
- 2、Storm中的一些概念理解
1.Tuple,Value,Field Tuple官方解释: "A tuple is a named of values where each value can be any type.& ...
- Navicat Premium for Mac完美破解
前因:系统升级Mojave10.14.4,没升级成功,也可能是误删了系统下的private文件夹下的东西,导致内核崩溃. 自己鼓捣了下,恢复系统不成功,去苹果售后问了下,重装系统399,保留资料 ...
- volatility内存取证
最近参加了45届世界技能大赛的山东选拔赛,样题里有一个题如下: 师傅好不容易拿到了压缩包的密码,刚准备输入,电脑蓝屏 了... = =",题意简单明了,易于理解.一看就是内存取证的题并且已经 ...