SparkML之回归(二)岭回归和Lasso阐述及OLS,梯度下降比较
标准的方法是用OLS,但是当没有满足這样条件的x(比如当x不是满秩情况下),那么就会出现over-fitted 和
load lpsa.data
Y = lpsa(:,1);
X = lpsa(:,2:end);
x1 = X(:,1);
x2 = X(:,2);
x3 = X(:,3);
x4 = X(:,4);
x5 = X(:,5);
x6 = X(:,6);
x7 = X(:,7);
x8 = X(:,8);
%计算矩阵X的相关性
coef = corrcoef(X);%发现 6,7,8相关性比较强,拿出来分析分析
subplot(1,3,1)
plot(x6,x7,'.')
xlabel('x6'); ylabel('x7'); grid on; axis squaresubplot(1,3,2)
plot(x6,x8,'.')
xlabel('x6'); ylabel('x8'); grid on; axis squaresubplot(1,3,3)
plot(x7,x8,'.')
xlabel('x7'); ylabel('x8'); grid on; axis square%% 岭回归
% k :岭回归参数
% b :回归系数
%k = 0:1e-5:5e-3;
k = 0:0.1:1000;
b = ridge(Y,X,k);
figure
plot(k,b,'LineWidth',2)
xlabel('ridge parameters')
ylabel('coefficient ')
title('Ridge regression analysis')
%在1000出感觉有点趋于稳点
ridgeCoef = b(:,1);%此处是随机取一个%GCV(Generalized Gross-Validation)确定参数
%参考:http://www.stat.washington.edu/courses/stat527/s13/readings/golubetal79.pdf%% lasso
% B 回归系数
[B,FitInfo] = lasso(X,Y,'CV',10);
lassoPlot(B,FitInfo,'PlotType','CV');
LassoCoef = B(:,1);%此处是随机取一个%% 普通最小二乘法(ols)
%OLS得到的系数
OLScoef = inv(X'*X)*X'*Y;%% 梯度下降
% theta 为系数
theta = zeros(8,1);
alpha = 0.1;
y = Y;
m = length(y);
Maxiters = 1000;
for iter = 1:Maxiterstemp1=theta(1)-alpha*(1/m)*(sum((X*theta-y).*X(:,1)));temp2=theta(2)-alpha*(1/m)*(sum((X*theta-y).*X(:,2)));temp3=theta(3)-alpha*(1/m)*(sum((X*theta-y).*X(:,3)));temp4=theta(4)-alpha*(1/m)*(sum((X*theta-y).*X(:,4)));temp5=theta(5)-alpha*(1/m)*(sum((X*theta-y).*X(:,5)));temp6=theta(6)-alpha*(1/m)*(sum((X*theta-y).*X(:,6)));temp7=theta(7)-alpha*(1/m)*(sum((X*theta-y).*X(:,7)));temp8=theta(8)-alpha*(1/m)*(sum((X*theta-y).*X(:,8)));theta(1)=temp1;theta(2)=temp2;theta(3)=temp3;theta(4)=temp4;theta(5)=temp5;theta(6)=temp6;theta(7)=temp7;theta(8)=temp8;
end%% 系数
% 岭回归得到的系数,正则参数不同,回归系数也不同
% [0.716407012479988;0.292642400760394;-0.142549625985014;0.212007604489450;0.309619533066819;-0.289005615691298;-0.0209135198219117;0.277345952501608]% lasso回归得到的稀疏,正则参数不同,回归系数也不同
% [0.679207361440420;0.263036185793238;-0.141319231260542;0.210043147964645;0.305019048226535;-0.287867731465690;-0.0208705957688494;0.266362414075235]% 普通最小二乘法(ols)得到的系数,不会变化
% [0.599895877039271;0.185876494916387;0.280805087089222;0.110759694026575;0.400320416307387;-0.593207551633941;-0.613250168396049;0.916864235688470]% 梯度下降得到的系数,当收敛时,不会变化,在收敛前,跟学习率、eps、maxiters有关
% [0.599895872830287;0.185876495684477;0.280805086929663;0.110759694108334;0.400320416644753;-0.593207544508389;-0.613250160896409;0.916864226077661]
标准的方法是用OLS,但是当没有满足這样条件的x(比如当x不是满秩情况下),那么就会出现over-fitted 和
load lpsa.data
Y = lpsa(:,1);
X = lpsa(:,2:end);
x1 = X(:,1);
x2 = X(:,2);
x3 = X(:,3);
x4 = X(:,4);
x5 = X(:,5);
x6 = X(:,6);
x7 = X(:,7);
x8 = X(:,8);
%计算矩阵X的相关性
coef = corrcoef(X);%发现 6,7,8相关性比较强,拿出来分析分析
subplot(1,3,1)
plot(x6,x7,'.')
xlabel('x6'); ylabel('x7'); grid on; axis squaresubplot(1,3,2)
plot(x6,x8,'.')
xlabel('x6'); ylabel('x8'); grid on; axis squaresubplot(1,3,3)
plot(x7,x8,'.')
xlabel('x7'); ylabel('x8'); grid on; axis square%% 岭回归
% k :岭回归参数
% b :回归系数
%k = 0:1e-5:5e-3;
k = 0:0.1:1000;
b = ridge(Y,X,k);
figure
plot(k,b,'LineWidth',2)
xlabel('ridge parameters')
ylabel('coefficient ')
title('Ridge regression analysis')
%在1000出感觉有点趋于稳点
ridgeCoef = b(:,1);%此处是随机取一个%GCV(Generalized Gross-Validation)确定参数
%参考:http://www.stat.washington.edu/courses/stat527/s13/readings/golubetal79.pdf%% lasso
% B 回归系数
[B,FitInfo] = lasso(X,Y,'CV',10);
lassoPlot(B,FitInfo,'PlotType','CV');
LassoCoef = B(:,1);%此处是随机取一个%% 普通最小二乘法(ols)
%OLS得到的系数
OLScoef = inv(X'*X)*X'*Y;%% 梯度下降
% theta 为系数
theta = zeros(8,1);
alpha = 0.1;
y = Y;
m = length(y);
Maxiters = 1000;
for iter = 1:Maxiterstemp1=theta(1)-alpha*(1/m)*(sum((X*theta-y).*X(:,1)));temp2=theta(2)-alpha*(1/m)*(sum((X*theta-y).*X(:,2)));temp3=theta(3)-alpha*(1/m)*(sum((X*theta-y).*X(:,3)));temp4=theta(4)-alpha*(1/m)*(sum((X*theta-y).*X(:,4)));temp5=theta(5)-alpha*(1/m)*(sum((X*theta-y).*X(:,5)));temp6=theta(6)-alpha*(1/m)*(sum((X*theta-y).*X(:,6)));temp7=theta(7)-alpha*(1/m)*(sum((X*theta-y).*X(:,7)));temp8=theta(8)-alpha*(1/m)*(sum((X*theta-y).*X(:,8)));theta(1)=temp1;theta(2)=temp2;theta(3)=temp3;theta(4)=temp4;theta(5)=temp5;theta(6)=temp6;theta(7)=temp7;theta(8)=temp8;
end%% 系数
% 岭回归得到的系数,正则参数不同,回归系数也不同
% [0.716407012479988;0.292642400760394;-0.142549625985014;0.212007604489450;0.309619533066819;-0.289005615691298;-0.0209135198219117;0.277345952501608]% lasso回归得到的稀疏,正则参数不同,回归系数也不同
% [0.679207361440420;0.263036185793238;-0.141319231260542;0.210043147964645;0.305019048226535;-0.287867731465690;-0.0208705957688494;0.266362414075235]% 普通最小二乘法(ols)得到的系数,不会变化
% [0.599895877039271;0.185876494916387;0.280805087089222;0.110759694026575;0.400320416307387;-0.593207551633941;-0.613250168396049;0.916864235688470]% 梯度下降得到的系数,当收敛时,不会变化,在收敛前,跟学习率、eps、maxiters有关
% [0.599895872830287;0.185876495684477;0.280805086929663;0.110759694108334;0.400320416644753;-0.593207544508389;-0.613250160896409;0.916864226077661]
SparkML之回归(二)岭回归和Lasso阐述及OLS,梯度下降比较相关推荐
- lasso回归_线性回归amp;lasso回归amp;岭回归介绍与对比
1. 回顾最小二乘法 详细的解释在以下这个链接 https://www.matongxue.com/madocs/818 简而言之,最小二乘法展现了平方误差值最小的时候,就是最好的拟合回归线. 2. ...
- 线性回归、lasso回归、岭回归以及弹性网络的系统解释
线性回归.lasso回归.岭回归以及弹性网络的系统解释 声明 背景介绍 概述 线性回归模型函数及损失函数 线性回归算法 多项式回归(线性回归的推广) 广义线性回归(线性回归的推广) 岭回归(Ridge ...
- 线性回归——lasso回归和岭回归(ridge regression)
目录 线性回归--最小二乘 Lasso回归和岭回归 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行? References 线性回归很简单,用线性函数拟合数据,用 mean squ ...
- lasso回归和岭回归_如何计划新产品和服务机会的回归
lasso回归和岭回归 Marketers sometimes have to be creative to offer customers something new without the lux ...
- 应用预测建模第六章-线性回归-预测化合物溶解度练习-R语言(多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网)
模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...
- 应用预测建模第六章线性回归习题6.1【主成分分析,模型的最优参数选择与模型对比 ,多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网】
模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...
- 应用预测建模第六章线性回归习题6.3【缺失值插补,分层抽样,预测变量重要性,重要预测变量如何影响响应变量,多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网】
模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...
- lasso回归与岭回归
lasso回归与岭回归 简介 lasso回归(Least Absolute Shrinkage and Selection Operator Regression)与岭回归(Ridge Regress ...
- Machine Learning | (10) 回归算法-岭回归
Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...
最新文章
- 随机邮箱_万豪随机发50美刀的礼券,看看你的邮箱有没有!英国航空BA里程缩水在即...
- ABAP术语-Object Name
- POJ-1414 Life Line (暴力搜索)
- lightning接口_苹果手机接口未来将和安卓手机统一——欧盟通过正式决议
- ORACLE TEXT DATASTORE PREFERENCE(七)
- xp如何快速锁定计算机,Window XP中快速锁定计算机两法
- 纽约州立大学石溪分校将理论物理研究所命名为“杨振宁理论物理研究所”
- php时间转两位数年份,PHP常用时间函数资料整理
- iOS线程生命周期的监控
- PAT甲级题目对应知识点分类梳理
- ork+realsense 尝试
- Linux:libxml2的安装及使用示例(C语言)
- Adobe Flash Player 不是最新版本
- jquery提交表单验证示例代码
- zynq usb dwc3中断事件异常
- java如何给字符串每三位分隔逗号
- VSS2005使用方法
- 为什么需要开发X 波段带通滤波器
- OpenCV笔记-对轮廓进行平滑处理
- 导航条形式 转自百度UEO