前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >简单易学的机器学习算法——岭回归(Ridge Regression)

简单易学的机器学习算法——岭回归(Ridge Regression)

作者头像
felixzhao
发布于 2019-02-13 09:56:53
发布于 2019-02-13 09:56:53
9.4K00
代码可运行
举报
文章被收录于专栏:null的专栏null的专栏
运行总次数:0
代码可运行

一、一般线性回归遇到的问题

    在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在:

  • 预测精度:这里要处理好这样一对为题,即样本的数量

和特征的数量

时,最小二乘回归会有较小的方差

时,容易产生过拟合

时,最小二乘回归得不到有意义的结果

  • 模型的解释能力:如果模型中的特征之间有相互关系,这样会增加模型的复杂程度,并且对整个模型的解释能力并没有提高,这时,我们就要进行特征选择。

以上的这些问题,主要就是表现在模型的方差和偏差问题上,这样的关系可以通过下图说明:

(摘自:机器学习实战)

方差指的是模型之间的差异,而偏差指的是模型预测值和数据之间的差异。我们需要找到方差和偏差的折中。

二、岭回归的概念

    在进行特征选择时,一般有三种方式:

  • 子集选择
  • 收缩方式(Shrinkage method),又称为正则化(Regularization)。主要包括岭回归个lasso回归。
  • 维数缩减

    岭回归(Ridge Regression)是在平方误差的基础上增加正则项

,

通过确定

的值可以使得在方差和偏差之间达到平衡:随着

的增大,模型方差减小而偏差增大。

    对

求导,结果为

令其为0,可求得

的值:

三、实验的过程

    我们去探讨一下取不同的

对整个模型的影响。

MATLAB代码

主函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%% 岭回归(Ridge Regression)

%导入数据
data = load('abalone.txt');
[m,n] = size(data);

dataX = data(:,1:8);%特征
dataY = data(:,9);%标签

%标准化
yMeans = mean(dataY);
for i = 1:m
    yMat(i,:) = dataY(i,:)-yMeans;
end

xMeans = mean(dataX);
xVars = var(dataX);
for i = 1:m
    xMat(i,:) = (dataX(i,:) - xMeans)./xVars;
end

% 运算30次
testNum = 30;
weights = zeros(testNum, n-1);
for i = 1:testNum
    w = ridgeRegression(xMat, yMat, exp(i-10));
    weights(i,:) = w';
end

% 画出随着参数lam
hold on
axis([-9 20 -1.0 2.5]);
xlabel log(lam);
ylabel weights;
for i = 1:n-1
    x = -9:20;
    y(1,:) = weights(:,i)';
    plot(x,y);
end

岭回归求回归系数的函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function [ w ] = ridgeRegression( x, y, lam )
    xTx = x'*x;
    [m,n] = size(xTx);
    temp = xTx + eye(m,n)*lam;
    if det(temp) == 0
        disp('This matrix is singular, cannot do inverse');
    end
    w = temp^(-1)*x'*y;
end
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年05月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习 学习笔记(5) 线性回归
给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},其中xi=(xi1;xi2;xi3;...;xid),yi是实数。线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。
2018/09/03
8830
机器学习 学习笔记(5) 线性回归
【机器学习实战】第8章 预测数值型数据:回归
片刻
2018/01/05
2K0
【机器学习实战】第8章 预测数值型数据:回归
机器学习(七)—回归
  摘要:本文分别介绍了线性回归、局部加权回归和岭回归,并使用python进行了简单实现。
oYabea
2020/09/07
4320
岭回归(ridge regression)
当X不是列满秩矩阵时,即特征数n比样本数m还多,则X.T*X的行列式为0,逆不存在。或者X的某些列的线性相关比较大时,则X.T*X的行列式接近0,X.T*X为病态矩阵(接近于奇异),此时计算其逆矩阵误差会很大,传统的最小二乘法缺乏稳定性与可靠性。
用户6021899
2019/08/14
3.7K0
机器学习15:线性回归模型
4.1,波士顿房价预测:线性回归(无正则化项)、Ridge回归(L2正则)、LASSO回归(L1正则)、Elasitc Net算法(L1和L2正则);
用户5473628
2019/08/08
8150
机器学习笔记——线性回归及其两种常用的优化方法
回归的目的是预测数值型的目标值,最直接的办法是依据输入写出一个目标值的计算公式,比如要计算一个男生可以找到女朋友的概率:
数据森麟
2020/05/27
2.5K0
机器学习笔记——线性回归及其两种常用的优化方法
回归树/模型树及python代码实现
所谓回归就是数据进行曲线拟合,回归一般用来做预测,涵盖线性回归(经典最小二乘法)、局部加权线性回归、岭回归和逐步线性回归。先来看下线性回归,即经典最小二乘法,说到最小二乘法就不得说下线性代数,因为一般
机器学习AI算法工程
2018/03/12
3K0
回归树/模型树及python代码实现
Python3《机器学习实战》学习笔记(十二):线性回归提高篇之乐高玩具套件二手价预测
版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 https://blog.csdn.net/c406495762/article/details/82967529
Jack_Cui
2019/05/25
7500
机器学习实战教程(十二):线性回归提高篇之乐高玩具套件二手价预测
原文链接:https://cuijiahua.com/blog/2017/12/ml_12_regression_2.html
圆方圆PYTHON学院
2019/01/30
9540
机器学习实战教程(十二):线性回归提高篇之乐高玩具套件二手价预测
机器学习实战---线性回归提高篇之乐高玩具套件二手价预测
作者:崔家华 编辑:王抒伟 PS(欢迎访问作者个人网站:www.cuijiahua.com) 线性回归 零 前言: 本篇文章讲解线性回归的缩减方法,岭回归以及逐步线性回归,同时熟悉sklearn的岭回归使用方法,对乐高玩具套件的二手价格做出预测。 一 岭回归: 如果数据的特征比样本点还多应该怎么办?很显然,此时我们不能再使用上文的方法进行计算了,因为矩阵X不是满秩矩阵,非满秩矩阵在求逆时会出现问题。为了解决这个问题,统计学家引入岭回归(ridge regression)的概念。 1、岭回归是啥子? 岭回归
机器学习算法工程师
2018/03/06
1.8K0
机器学习实战---线性回归提高篇之乐高玩具套件二手价预测
线性回归与岭回归python代码实现
详细的推导可以参见:http://blog.csdn.net/weiyongle1996/article/details/73727505
py3study
2020/01/13
1.6K0
机器学习经典算法详解及Python实现--线性回归(Linear Regression)算法
回归是统计学中最有力的工具之一。机器学习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型、连续性而定义的。顾名思义,分类算法用于离散型分布预测,如前面讲过的KNN、决策树、朴素贝叶斯、adaboost、SVM、Logistic回归都是分类算法;回归算法用于连续型分布预测,针对的是数值型的样本,使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。
Ai学习的老章
2019/04/10
2.4K0
机器学习经典算法详解及Python实现--线性回归(Linear Regression)算法
机器学习算法之岭回归、Lasso回归和ElasticNet回归
作者:biaodianfu https://www.biaodianfu.com/ridge-lasso-elasticnet.html
Ai学习的老章
2019/07/17
1.6K0
机器学习算法之岭回归、Lasso回归和ElasticNet回归
【机器学习】一文读懂线性回归、岭回归和Lasso回归
本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失,然后介绍了线性回归中常用的两种范数来解决过拟合和矩阵不可逆的情况,分别对应岭回归和Lasso回归,最后考虑到线性回归的局限性,介绍了一种局部加权线性回归,增加其非线性表示能力
yuquanle
2019/09/30
5930
【机器学习】一文读懂线性回归、岭回归和Lasso回归
手撸机器学习算法 - 岭回归
今天我们来一起学习一个除了线性回归、多项式回归外最最最简单的回归算法:岭回归,如果用等式来介绍岭回归,那么就是:
HoLoong
2021/06/21
1.1K0
手撸机器学习算法 - 岭回归
《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
作者:崔加华 编辑:祝鑫泉 前言 1 好久没有更新了,最近中耳炎,晚上耳鸣,一度影响正常工作,慢慢吃药调理中。在学习之余,记得加强体育锻炼! 前面的文章介绍了很多分类算法,分类的目标变量是标称型数据,而本文将会对连续型的数据做出预测。主要讲解简单的线性回归和局部加权线性回归,并通过预测鲍鱼年龄的实例进行实战演练。 什么是回归 2 回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。假如你想预测小姐姐男友汽车的功率,可能会这么计算: HorsePower = 0.0015 * an
机器学习算法工程师
2018/03/06
1.7K0
《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
局部加权线性回归 | 冰水数据智能专题 | 3rd
局部加权线性回归(Locally Weighted Linear Regression,LWLR),针对于线性回归存在的欠 拟合现象,可以引入一些偏差得到局部加权线性回归对算法进行优化。
用户7623498
2020/08/04
5350
局部加权线性回归  | 冰水数据智能专题 | 3rd
回归,岭回归。LASSO回归
矩阵表示多元线性回归 Y=BX+a Q(B)=(Y-BX)T(Y-BX)达到最小时的B值。 也即是残差平方和最小时。B(Bi)的值。可以证明B的最小二乘估计=(XTX)-1XTy 其中(XTX)-1为广义逆。 如果X存在线性相关的话,XTX没有逆: 1.出现多重共线性2.当n<p,变量比样本多时,出现奇异 岭回归(Ridge Regression)---------共线性问题 先对数据做标准化 B(K)=(XTX+kI)XTY为B的岭回归估计,其中K为岭参数,I为单位矩阵,KI为扰动。 岭迹图帮助我们发现
学到老
2018/03/16
2.5K0
【机器学习笔记】:大话线性回归(一)
线性回归作为监督学习中经典的回归模型之一,是初学者入门非常好的开始。宏观上考虑理解性的概念,我想我们在初中可能就接触过,y=ax,x为自变量,y为因变量,a为系数也是斜率。如果我们知道了a系数,那么给我一个x,我就能得到一个y,由此可以很好地为未知的x值预测相应的y值。这很符合我们正常逻辑,不难理解。那统计学中的线性回归是如何解释的呢?
Python数据科学
2018/12/05
1.4K0
Python3《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 https://blog.csdn.net/c406495762/article/details/78760239
Jack_Cui
2019/05/25
7930
推荐阅读
相关推荐
机器学习 学习笔记(5) 线性回归
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验