一文读懂线性回归、岭回归和Lasso回归
![](/assets/blank.gif)
(图片由AI科技大本营付费下载自视觉中国)
作者 | 文杰
编辑 | yuquanle
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
根据中心极限定理,当一个事件与很多独立随机变量有关,该事件服从正态分布 。一般来说,连续值我们都倾向于假设服从正态分布。假设每个样本的误差
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
其迭代优化函数如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
Lasso回归采用一范数来约束,使参数非零个数最少。而Lasso和岭回归的区别很好理解,在优化过程中,最优解为函数等值线与约束空间的交集,正则项可以看作是约束空间。可以看出二范的约束空间是一个球形,而一范的约束空间是一个方形,这也就是二范会得到很多参数接近0的值,而一范则尽可能非零参数最少。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
一般选择下面的权重函数,权重函数选择并非因为其类似于高斯函数,而是根据数据分布的特性,但权重函数的选取并不一定依赖于数据特性。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
/**
线性回归函数的实现,考虑一般的线性回归,最小平方和作为损失函数,则目标函数是一个无约束的凸二次规划问题,
由凸二次规划问题的极小值在导数为0处取到,且极小值为全局最小值,且有闭式解。根据数学表达式实现矩阵之间的运算求得参数w。
**/
int regression(Matrix x,Matrix y)
{
Matrix xT=x.transposeMatrix();
Matrix xTx=xTx.multsMatrix(xT,x);
Matrix xTx_1=xTx.niMatrix();
Matrix xTx_1xT=xTx_1xT.multsMatrix(xTx_1,xT);
Matrix ws;
ws=ws.multsMatrix(xTx_1xT,y);
cout<<"ws"<<endl;
ws.print();
return 0;
}
/**
下面的岭回归函数只是在一般的线性回归函数的基础上在对角线上引入了岭的概念,不仅有解决矩阵不可逆的线性,同样也有正则项的目的,
采用常用的二范数就得到了直接引入lam的形式。
**/
int ridgeRegres(Matrix x,Matrix y,double lam)
{
Matrix xT=x.transposeMatrix();
Matrix xTx=xTx.multsMatrix(xT,x);
Matrix denom(xTx.row,xTx.col,lam,"diag");
xTx=xTx.addMatrix(xTx,denom);
Matrix xTx_1=xTx.niMatrix();
Matrix xTx_1xT=xTx_1xT.multsMatrix(xTx_1,xT);
Matrix ws=ws.multsMatrix(xTx_1xT,y);
cout<<"ws"<<endl;
ws.print();
return 0;
}
/**
局部加权线性回归是在线性回归的基础上对每一个测试样本(训练的时候就是每一个训练样本)在其已有的样本进行一个加权拟合,
权重的确定可以通过一个核来计算,常用的有高斯核(离测试样本越近,权重越大,反之越小),这样对每一个测试样本就得到了不一样的
权重向量,所以最后得出的拟合曲线不再是线性的了,这样就增加的模型的复杂度来更好的拟合非线性数据。
**/
//需要注意的是局部加权线性回归是对每一个样本进行权重计算,所以对于每一个样本都有一个权重w,所以下面的函数只是局部线性回归的一个主要辅助函数
Matrix locWeightLineReg(Matrix test,Matrix x,Matrix y,const double &k)
{
Matrix w(x.row,x.row,0,"T");
double temp=0;
int i,j;
/**
根据测试样本点与整个样本的距离已经选择的核确定局部加权矩阵,采用对角线上为局部加权值
**/
for(i=0;i<x.row;i++)
{
temp=0;
for(j=0;j<x.col;j++)
{
temp+=(test.data[0][j]-x.data[i][j])*(test.data[0][j]-x.data[i][j]);
}
w.data[i][i]=exp(temp/-2.0*k*k);
}
Matrix xT=x.transposeMatrix();
Matrix wx=wx.multsMatrix(w,x);
Matrix xTwx;
xTwx=xTwx.multsMatrix(xT,wx);
Matrix xTwx_1;
xTwx_1=xTwx.niMatrix();
Matrix xTwx_1xT;
xTwx_1xT=xTwx_1xT.multsMatrix(xTwx_1,xT);
Matrix xTwx_1xTw;
xTwx_1xTw=xTwx_1xTw.multsMatrix(xTwx_1xT,w);
Matrix ws = xTwx_1xTw * y;
return ws;
}
◆
精彩推荐
◆
![](/assets/blank.gif)
推荐阅读
100多次竞赛后,他研发了一个几乎可以解决所有机器学习问题的框架
王霸之路:从0.1到2.0,一文看尽TensorFlow“奋斗史”
伯克利人工智能研究院开源深度学习数据压缩方法Bit-Swap,性能创新高
NLP被英语统治?打破成见,英语不应是「自然语言」同义词
TensorFlow2.0正式版发布,极简安装TF2.0(CPU&GPU)教程
肖仰华:知识图谱构建的三要素、三原则和九大策略 | AI ProCon 2019
AI落地遭“卡脖子”困境:为什么说联邦学习是解决良方?
10分钟搭建你的第一个图像识别模型 | 附完整代码
限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看!
![](/assets/blank.gif)
你点的每个“在看”,我都认真当成了喜欢
一文读懂线性回归、岭回归和Lasso回归相关推荐
- lasso回归_一文读懂线性回归、岭回归和Lasso回归
(图片由AI科技大本营付费下载自视觉中国) 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失 ...
- python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...
点击上方蓝色字体,关注AI小白入门哟 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失,然后 ...
- 【机器学习】一文读懂线性回归、岭回归和Lasso回归
来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. 线性回归 1.1 线性回归 假设有数据有T={(x(1),y(1)),...,(x(i),y(i)) ...
- 一文读懂多元线性回归
一文读懂多元线性回归 一.什么是线性回归模型 1.1模型 1.2线性 1.3回归 二.如何建立线性回归模型 2.1寻找yyy和xxx 2.2确定模型参数 2.2.1 拟合的角度 什么是拟合 最小二乘法 ...
- 一文读懂Faster RCNN
来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...
- 语言相关系数显著性_相关性分析在SPSS中的具体操作,一文读懂相关系数的含义及使用——【杏花开生物医药统计】...
相关性分析介绍 生物和医学统计中,相关分析属于流程前端的探索性分析,研究变量间关系及性质,其结果在为下一步采取何种方法做出指引,为数据挖掘之前的基础工作. 相关系数的选择 相关分析之前,需要先确认变量 ...
- 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
[深度学习]一文读懂机器学习常用损失函数(Loss Function) 最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点 ...
- 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归
文章目录 机器学习的sklearn库 一.回归分析 <1.1>线性回归 1.1.1.Python实现线性回归 <1.2>最小二乘法 1.2.1.MATLAB实现最小二乘法 1. ...
- 一文读懂 Bias(偏差)、Error(误差)、Variance(方差)
一文读懂 Bias(偏差).Error(误差).Variance(方差) 偏差 偏差度量了学习算法的期望预期与真实结果的偏离程度 ,即刻画了学习算法本身的拟合能力.偏差太高,就会出现欠拟合,即与真实结 ...
最新文章
- Go-Mega Tutorial 01 - Hello World
- carafe 上采样
- [kubernetes] 证书详细总结
- ubuntu 14.04 linux下wifi驱动安装使用的一些笔记
- C语言中机考投机取巧的方法,计算机二级C语言考试机试经验三部曲:备考篇(一)...
- textbox 下拉模糊查询ajax,Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中...
- C++ 模拟鼠标键盘操作
- 找不到方向?10大热门大数据应用领域总有一款适合你
- 元气森林们迈入新消费后时代
- 认识中药(4)--陈皮
- PKI CA RA KMC
- double转换为二进制
- 整车nvh培训入门 仿真 ,基于Hyperworks 掌握思路 细节
- Java向word中插入Excel文件对象
- Python汉英/英汉翻译(百度API/有道API)
- 用让新海诚本人惊讶的 AI 模型制作属于你的动漫视频
- AndroidStudio 3.0.1 cmake安装
- 员工转正述职答辩问什么问题_试用期转正述职报告
- 探花交友_第9章_小视频方案(新版)
- Python实现基于物品的协同过滤推荐算法构建电影推荐系统