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

岭回归详解 从零开始 从理论到实践 岭回归详解 从零开始 从理论到实践一、岭回归的理解1.1、LinearRegression的回顾1.2、岭回归 - Ridge Regression二、sklearn的使用2.1、方法、参数与属性2.2、简单案例2.3、超参数的设定方法 -RidgeCV2.4、多项式回归+岭回归案例 一、岭回归的理解 1.1、LinearRegression的回顾 在标准线性回归中,通过最小化真实值(yiy_iyi​)和预测值(y^i\hat y_iy^​i​)的平方误差来训练模型,这个平方误差值也被称为残差平方和(RSS 阅读详情

转载地址:http://blog.youkuaiyun.com/google19890102/article/details/27228279

 

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

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

  • 预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量
    • 时,最小二乘回归会有较小的方差
    • 时,容易产生过拟合
    • 时,最小二乘回归得不到有意义的结果
  • 模型的解释能力:如果模型中的特征之间有相互关系,这样会增加模型的复杂程度,并且对整个模型的解释能力并没有提高,这时,我们就要进行特征选择。

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


(摘自:机器学习实战)

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

二、岭回归的概念

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

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

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

,

通过确定的值可以使得在方差和偏差之间达到平衡:随着的增大,模型方差减小而偏差增大。

    对求导,结果为


令其为0,可求得的值:


三、实验的过程

    我们去探讨一下取不同的对整个模型的影响。


MATLAB代码

主函数

  1. %% 岭回归(Ridge Regression)  
  2.   
  3. %导入数据  
  4. data = load('abalone.txt');  
  5. [m,n] = size(data);  
  6.   
  7. dataX = data(:,1:8);%特征  
  8. dataY = data(:,9);%标签  
  9.   
  10. %标准化  
  11. yMeans = mean(dataY);  
  12. for i = 1:m  
  13.     yMat(i,:) = dataY(i,:)-yMeans;  
  14. end  
  15.   
  16. xMeans = mean(dataX);  
  17. xVars = var(dataX);  
  18. for i = 1:m  
  19.     xMat(i,:) = (dataX(i,:) - xMeans)./xVars;  
  20. end  
  21.   
  22. % 运算30次  
  23. testNum = 30;  
  24. weights = zeros(testNum, n-1);  
  25. for i = 1:testNum  
  26.     w = ridgeRegression(xMat, yMat, exp(i-10));  
  27.     weights(i,:) = w';  
  28. end  
  29.   
  30. % 画出随着参数lam  
  31. hold on  
  32. axis([-9 20 -1.0 2.5]);  
  33. xlabel log(lam);  
  34. ylabel weights;  
  35. for i = 1:n-1  
  36.     x = -9:20;  
  37.     y(1,:) = weights(:,i)';  
  38.     plot(x,y);  
  39. end  
%% 岭回归(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


岭回归求回归系数的函数

  1. function [ w ] = ridgeRegression( x, y, lam )  
  2.     xTx = x'*x;  
  3.     [m,n] = size(xTx);  
  4.     temp = xTx + eye(m,n)*lam;  
  5.     if det(temp) == 0  
  6.         disp('This matrix is singular, cannot do inverse');  
  7.     end  
  8.     w = 

 

岭回归与LASSO回归:解析两大经典线性回归方法 这是一个用于回归问题的评估指标,用于度量模型的预测值与实际观测值之间的均方误差。均方误差越小,模型的性能越好。这里我进行一个代码的解释说明,我们定义了一个plot_model函数,这个函数的参数是一个已经训练好的模型,之后打印一个均方误差,用于为了测试预测性能;L1正则化和L2正则化都是用于线性回归等机器学习模型中的正则化技术,它们的作用是防止模型过拟合,提高模型的泛化能力。适用情况:L2正则化通常用于处理多重共线性问题或者在模型需要保留大部分特征的情况下,但希望限制回归系数的大小以提高模型的泛化能力。 阅读详情

相关推荐

岭回归算法

岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。其实就是降低精度来提高泛化性,这种方法较适合用于病态数据的拟合。在用高阶多项式拟合数据时,有可能会拟合出系数特别大的表达式,即每个特征对输出的影响都很大。除了在训练集上的表现,我们希望模型在测试集上同样具有较好的拟合效果(泛化性),此时就希望训练的模型的系数尽可能地小(趋向于0)。

unhurried人生——冕临的博客 1万+

岭回归(Ridge Regression)

岭回归(Ridge Regression)岭回归基本原理sklearn实现岭回归标准方程法实现岭回归 岭回归基本原理        岭回归的代价函数加入了一个L2正则项(没有正则项的是无偏估计,加入正则项的代价函数为有偏估计),最后一个正则项系数label与前面的岭系数label不一样。下面是岭回归的代价函数:     &nb...

weixin_44831924的博客 4万+

AI算法17-贝叶斯岭回归算法Bayesian Ridge Regression | BRR

贝叶斯岭回归(Bayesian Ridge Regression)是一种回归分析方法,它结合了岭回归(Ridge Regression)的正则化特性和贝叶斯统计的推断能力。这种方法在处理具有大量特征的数据集时特别有用,因为它可以帮助减少模型的复杂性并防止过拟合。线性回归是一种通过拟合输入特征与目标变量之间的线性关系来预测目标变量的统计方法。然而,当数据存在噪声或多重共线性时,传统的最小二乘法可能会导致过拟合问题,即模型在训练数据上表现良好,但在新数据上泛化能力差。

yangguangjiujiu99的专栏 3878

机器学习系列----岭回归(Ridge Regression)简介及实现

岭回归(Ridge Regression),也被称为Tikhonov正则化,是一种线性回归的变体。它通过在普通最小二乘法(OLS)回归中加入L2正则化项来解决多重共线性问题,从而提高模型的泛化能力和鲁棒性。岭回归的核心思想是通过惩罚模型的参数,使得它们保持较小的值,从而减少过拟合的风险。岭回归适用于当特征之间高度相关时(即多重共线性问题),普通的线性回归模型可能会变得不稳定,并且模型的系数可能会变得非常大。岭回归通过加上一个正则化项,约束了模型参数的大小,从而使得模型更加稳健。

DK22151的博客 1万+

五、线性回归——岭回归Ridge Regression

一、岭回归引进的原因 当数据之间存在多重共线性(自变量高度相关)时,就需要使用岭回归分析。在存在多重共线性时,尽管最小二乘法(OLS)测得的估计值不存在偏差,它们的方差也会很大,从而使得观测值与真实值相差甚远。岭回归通过给回归估计值添加一个偏差值,来降低标准误差。 上面,我们看到了线性回归等式。还记得吗?它可以表示为: y=a+ b*x 这个等式也有一个误差项。完整的等式是: y=a+b*...

Nicole的博客 8344

【回归算法解析系列03】 岭回归(Ridge Regression)

岭回归通过引入L2正则化项,有效缓解了线性回归中的多重共线性和过拟合问题,提升了模型的稳定性和泛化能力。超参数λ\lambdaλ控制着正则化的强度,需要通过交叉验证等方法进行选择,以找到最优的λ\lambdaλ值。在测试集上,岭回归通常比普通线性回归更鲁棒,能够提供更准确的预测结果。

熵数实验室 1574

机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)

机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)

Saisimon`s blog 2万+

【机器学习】岭回归(Kernel Ridge Regression)附python代码

概述 岭回归,又叫吉洪诺夫正则化,是由Hoerl和Kennard于1970年提出的是一种专用于共线性数据分析的有偏估计回归法。岭回归实际上是一种改良的最小二乘估计法,具有L2正则化的线性最小二乘法。回归算法的,本质就是为了解决一个线性方程,而标准估计方法是普通的最小二乘法的线性回归。 岭回归 线性回归模型的目标函数是 f(x,y)=∑i=1m(yi−xiTw)2f(x, y) = \sum_{i=1}^{m}(y_{i}-x_{i}^{T}w)^{2}f(x,y)=∑i=1m​(yi​−xiT​w)2 .

you_just_look的博客 7868

深度探索:机器学习岭回归(Ridge Regression)算法原理及其应用

岭回归(Ridge Regression)作为一种线性模型正则化方法,在处理多重共线性、过拟合等问题上具有显著的优势。当特征之间高度相关,即存在多重共线性时,普通最小二乘法可能导致系数估计值不稳定且方差过大,进而影响模型的泛化能力。因此,岭回归在维持模型解释力的同时,通过对系数向量添加L2范数惩罚项来约束模型复杂度,从而改善模型性能,降低了模型过拟合的风险。

qq_51320133的博客 7516

【理解机器学习算法】之岭回归Ridge - L2 Rgularization

本人就职海外从事人工智能领域开发设计。 希望花时间总结下流行的机器学习算法,希望大家一起学习,欢迎指正!

Hyman Qiu 2314

Python实现岭回归(Ridge Regression)

岭回归(Ridge Regression)是一种常见的线性回归的扩展形式,它通过引入 `L2正则化项` 来解决线性回归模型中可能存在的过拟合问题。

优快云 精品推荐 2096

sklearn实现核岭回归(Kernel ridge regression)

核岭回归(Kernel Ridge Regression,KRR)是一种结合了岭回归(Ridge Regression)和核技巧的回归方法。它主要用于解决非线性问题,同时对数据进行正则化以防止过拟合。

优快云 精品推荐 4115

机器学习-岭回归 - 思维导图.pdf

机器学习岭回归思维导图学习法pdf:详细介绍岭回归各个步骤(建立计算矩阵-幂函数,计算回归系数,训练,预测),并提供具体算例。

sklearn实现岭回归(Ridge Regression)

这篇文章将引领我们深入了解岭回归——一个在统计学和机器学习领域中广泛应用的回归分析方法。岭回归特别适用于处理多重共线性数据,即当输入特征高度相关时。通过引入正则化项,岭回归能有效减少过拟合问题,保持模型的稳健性。

优快云 精品推荐 2815

STK与Matlab连接报错?手把手教你解决mexConnect函数执行问题(附完整避坑指南)

本文针对STK与Matlab连接时常见的“mexConnect函数执行”报错,提供了完整的诊断与解决方案。文章深入剖析了错误根源在于路径冲突或文件损坏,并手把手指导用户通过定位STK连接器文件、正确配置Matlab路径(包括使用addpath命令)以及执行初始化测试三步走策略,彻底解决问题。同时附上版本兼容性检查、安装避坑指南及构建稳健工作流的建议,帮助用户建立可靠的STK-Matlab联合仿真环境。

yolo5detector的博客 472

EPLAN电气设计精华 -模拟量传感器画法全解

本文介绍了EPLAN中模拟量压力传感器的标准画法要点,重点解析了电流型(4-20mA)、电压型(0-10V/0-5V)和特定应用型三种传感器的核心特点、典型符号、接线方式及应用场景。文章提供了EPLAN设备标识符示例,并分享了一个实际项目案例(XJC-Y01-20-4M传感器配合XJC-608T-F变送器和GSEE.GXLK-AI4S-I模块的应用),强调绘制前查阅技术资料的重要性。内容简明实用,有助于规范电气设计中的传感器绘制。

Qinmingyue13的博客 1179

机器学习与算法(9)--岭回归(Ridge Regression)

                                              岭回归(Ridge Regression)      岭回归(ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实...

mensyne的博客 1万+

解决 TensorFlow 和 Keras 的 Python 版本兼容问题:详细技术指南

本文提供了TensorFlow和Keras与Python版本不兼容问题的完整解决方案。通过版本对照表指出不同TensorFlow版本对应的Python支持范围,强调2.13.x仅支持Python 3.9-3.11,且不兼容Python 3.12+。给出最佳实践建议:使用虚拟环境管理项目依赖,推荐venv或conda创建独立环境;指导正确安装TensorFlow和Keras版本,建议优先使用tf.keras避免冲突;针对常见报错如DLL加载失败、模块导入错误等提供具体解决方法。最后给出一个在兼容环境中运行的M

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1663

Kernel Ridge Regression(核岭回归)---论文实战

本文介绍了 Kernel Ridge 的背景、原理、并通过论文数据集对其进行实战演练(包括GridSearchCV超参数搜索、cv = 5折 交叉验证 ),发现 Kernel Ridge 比 Ridge 模型更适合此数据集。

2201_75538245的博客 2325

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 241

日语五十音图速记攻略:从形象联想法到实战训练

语言学习中的记忆编码与条件反射构建是高效掌握基础的关键。其核心原理在于通过将抽象符号与具象图像、故事或已知概念关联,利用大脑对视觉和叙事信息的天然高记忆效率,从而降低认知负荷,加速识别与反应速度。这一方法的技术价值在于将机械重复转化为意义联结,显著提升长期记忆的牢固度与提取速度。在日语学习这一具体应用场景中,五十音图作为表音文字系统,正是实践这一记忆技术的绝佳对象。通过系统化的形象联想、分组对比(如平假名与片假名的对应关系)以及间隔重复的实战训练,学习者可以高效攻克这一入门难关,为后续的词汇、语法学习铺设坚

weixin_29032489的博客 376

岭回归(Ridge Regression)在机器学习中的应用

本文系统介绍了岭回归在处理多重共线性和过拟合问题中的应用。通过引入 L2 正则化项,岭回归有效控制回归系数幅度,提高模型稳定性与泛化能力。文章结合糖尿病数据集,展示了数据预处理、相关性分析、VIF 检测、最佳 alpha 参数选择及预测效果可视化,全面说明了岭回归的建模流程与实际应用价值,为高维或特征相关性较强的数据分析提供了实用参考。

MoRanzhi1203的博客 1683

【C2000系列DSP的Bootloader详解】实现过程、流程图与示例代码

C2000 Bootloader 的核心逻辑可概括为 “初始化→选模式→加载程序→校验→跳转” 五步。对于小白来说,无需纠结底层寄存器配置(驱动库已封装),重点理解 “启动流程” 和 “数据传输 + 校验” 的核心思想即可。 通过本文的流程图和示例代码,相信你已经掌握了 C2000 Bootloader 的核心原理。实际开发中,可基于 TI 提供的 Bootloader 示例(C2000Ware 中自带)进行修改,快速适配自己的硬件和应用场景。

昔时扬尘处 368
上一篇: ch6.JSP内置对象--application对象
下一篇: 简单易学的机器学习算法——lasso
thystar
博客等级 码龄17年 407粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值