《封号码罗》数据分析与人工智能之sklearn模型Ridge岭回归(十一)

【机器学习】岭回归(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 . 阅读详情

第一部分

# 线性回归:
# 如果不计算截距,本质就是矩阵运算,线性代数中的知识
# 如果要计算截距,只能使用梯度下降,多个参数系数,相当于多个变量
# 求偏导数
# 线性回归改进和升级

# Ridge岭回归,通过对系数的大小缩减来解决普通最小二乘的一些问题。
# 当数据的特征比样本点还多时,就不能使用线性回归和梯度下降等方法来预测
# 这是因为输入数据的矩阵X不是满秩矩阵,非满秩矩阵在求逆时会出现问题
# 为了解决这个问题,统计学家引入了岭回归(ridge regression)的概念
import numpy as np

# x + y + z = 10
# 2x + y + z = 10
# 2x - y + z = 10
X = np.array([[1, 1, 1], [2, 1, 1]])
# print(X)

# 在求上面X的逆矩阵时报错了,因为列的数量是3,秩的数量是2,是非满秩矩阵
# inv = np.linalg.inv(X)
# print(inv)
# zhi = np.linalg.matrix_rank(X)  # 求出秩,
# print(zhi)

# X2 = np.array([[1, 1, 1], [2, 1, 1], [2, -1, 1]])
# zhi2 = np.linalg.matrix_rank(X2)
# print(zhi2)  # 3


# x + y + z = 10
# 2x + y + z = 10
# 2x + 2y + 2z = 20
X3 = np.array([[1, 1, 1], [2, 1, 1], [2, 2, 2]])
zhi3 = np.linalg.matrix_rank(X3)  # 因为第三个跟第一个一样了,系统识别了
# print(zhi3)  # 2 不是满秩矩阵,就不能求逆,不能求逆就不能解方程

# 简单来说,岭回归就是矩阵XTX上加一个λI从而使得矩阵非奇异,进而能对XTX+λI求逆
# 其中矩阵I是一个m * m的单位矩阵,对角线上元素全为1,其他元素全为0,而λ是一个用户定义的数值
# 在这种情况下,回归系数的计算公式将变成 w = (XTX+λI)-1XTy 注释(T,-1,T)在幂的位置
i = np.eye(3)  # 单位矩阵
# print(i)
#
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]
X4 = X3 + 0.01 * i  # 0.01就是用户自定义的λ
# print(X3)
# [[1 1 1]
#  [2 1 1]
#  [2 2 2]]
# print(X4)
# [[1.01 1.   1.  ]
#  [2.   1.01 1.  ]
#  [2.   2.   2.01]]

# 可以看出,在原来非满秩矩阵经过和(很小的系数*单位矩阵)运算之后,秩变成了满秩
zhi4 = np.linalg.matrix_rank(X4)
# print(zhi4)  # 3
ss = np.linalg.inv(X4)  # 当矩阵变成满秩矩阵之后就可以求逆矩阵,可以解方程了
# print(ss)

# 岭回归最先用来处理特征数多于样本数的情况,现在也用于在估计中键入偏差,从而的得到更好的估计。
# 这里通过引入λ来限制了所有w之和,通过引入该惩罚项,能够减少不重要的 参数,
# 这个技术在统计学中也叫缩减(shrinkage)
# 缩减方法可以去掉不重要的参数,因此能更好的理解数据。此外,与简单的线性回归相比,缩减发能取得更好的预测效果
# 岭回归是加了二阶正则项的最小二乘,主要适用于过拟合严重或各变量之间存在多重共线性的时候。
# 岭回归是有bias的,这里的bias是为了让variance更小

# Ridge a|w|**2   L2正则化平方
# 正则(re)-----Regularization(规则化)限制,不能让系数无限大
#           系数越大,波动越大,方程越不稳定
# 正则化:防止过拟合,提高泛化能力(面试问答)

# 过拟合(类似走火入魔),让算法学习数据(准确率)---算法预测(新数据)
# 过拟合(学习特征,太较真了),本质就是训练数据准确特别高,预测新数据特别低
# 例如,让算法去识别范冰冰的脸部,给了算法学习数据(照片),在给算法一张别人的照片,算法识别不出来了
#       我们实际需要算法识别的是眼睛到眉毛的距离,结果算法识别了眉毛有多少根,这种情况就是太较真了,是过拟合

# 拟合:寻找特征,寻找函数,数据和目标通过特征和函数建立关系
# 过拟合:系数特别多,系数绝对值很大
# 怎样解决过拟合:01--系数个数减少 02--系数的绝对值变小
# L2正则化,就是将系数的绝对值减小

第二部分

import time

import numpy as np
from sklearn.linear_model import LinearRegression, Ridge  # 导入线性回归和岭回归
import sklearn.datasets as datasets
from sklearn.model_selection import train_test_split

boston = datasets.load_boston()  # 波士顿房价

X = boston["data"]  # 数据
y = boston["target"]  # 目标
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
lr = LinearRegression()  # 初始化一个线性回归对象
lr.fit(X_train, y_train)
print(lr.coef_, lr.score(X_test, y_test))

# 进入源码,可以看到岭回归使用的方程 ||y - Xw||^2_2 + alpha * ||w||^2_2
#                           是否存在截距    是否标准化(归一化)            最大迭代次数   最大精度tolerate 容忍
ridge = Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=1e-3, solver="auto",
              random_state=None)
ridge.fit(X_train, y_train)
print(ridge.coef_, ridge.score(X_test, y_test))
start = time.perf_counter()

end = time.perf_counter()
print(f"程序耗时为{(end - start).__round__(20)}")

【人工智能】机器学习:岭回归与LASSO回归(Ridge/LASSO Regression) 岭回归与LASSO回归是将正则化思想引入线性回归模型后得到的方法。 岭回归对模型的参数加入L2正则化,能够有效的防止模型过拟合,解决非满秩下求逆困难的问题。 LASSO回归全称为Least Absolute Shrinkage and Selection Operator (最小绝对收缩选择算子, 套索算法) ,对模型的参数加入L1正则化,能够稀疏矩阵,进行庞大特征数量下的特征选择。 阅读详情

相关推荐

岭回归应用实例

matlab 数据挖掘 课后作业 岭回归作用于多元线性回归模型 岭回归函数另附

十、【人工智能】【机器学习】【监督学习】-线性回归

在先前的文章系列中,我们深入探讨了机器学习的基础框架和算法分类,为读者构建了关于这一领域的坚实理论基础。本章节我们将焦点转向监督学习领域中的一个核心算法—— 卷积神经网络 (CNN),旨在详尽解析其内在逻辑、应用实践及重要参数调整策略。监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。

技术分享、程序员趣事、行业趋势等内容! 1734

机器视觉检测到底怎么做,经验分享

笔者做机器视觉检测已经有五六年了,也算是对机器视觉的检测技术有了一定的掌握。总的来说,基于机器视觉的检测技术主要包含三个部分:视觉采集模块、后台分析模块和动作决策模块。这几个分类,跟教科书上的有较大差异,很多同学觉得我在杜撰。笔者也不作反驳,因为这是笔者这些年工作经验的总结,自然区别于教科书。下面我们分开来讲这几个模块,同时会把笔者之前的论文做个推荐总结。 所有文章均可在博主的主页中找到,若无法找到,可以用搜索工具。博主的主页: https://blog.youkuaiyun.com/Aoulun 第..

Aoulun的博客 8675

sklearn机器学习:岭回归Ridge

在sklearn中,岭回归由线性模型库中的Ridge类来调用:

The Zen of Data Analysis 2208

手撕代码系列:Conv2D

在实际的神经网络中,每个卷积核都会对应一个偏置值。这意味着如果网络有多个卷积核,每个卷积核的输出都可以加上对应的偏置。

qq_55794606的博客 907

【Codex安装使用手册】

Codex安装部署使用教程

qq_43392230的博客 4932

机器学习入门研究(十三)-岭回归

目录 前言 欠拟合和过拟合 正则化 L1正则化 L2正则化 岭回归 前言 前段时间在忙项目合同的事情,这个学习耽误了一段时间,趁着年前不忙的时候,抓紧时间学完。 欠拟合和过拟合 欠拟合 定义:一个假设在训练集上不能得到更好的拟合,并且在测试集中也不能得到很好的拟合数据。 原因:模型过于简单,学习数据的特征少 解决办法:增加数据的特征数量 过拟合 定义:一个假设在训练...

nihaomabmt的专栏 909

如何选择StandardScaler、MinMaxScaler和RobustScaler做标准化的对比解释和示例代码

选择合适的标准化方法取决于数据的特点和需求。如果数据分布接近正态分布且无异常值,可以使用。如果需要将数据映射到特定范围内并保持相对关系,可以使用。如果数据中存在异常值或离群点,可以使用进行鲁棒标准化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好(避免不同量纲对方差、协方差计算的影响);在不涉及距离度量、协方差、数据不符合正态分布、异常值较少的时候,可使用MinMaxScaler。

qq_36001281的博客 4939

《封号码罗》数据分析与人工智能之sklearn模型Lasso岭回归(十二)

第一部分 # 套索回归 import time from sklearn.linear_model import Lasso # 导入套索回归模型 # Lasso是一个估计稀疏系数的线性模型 # 方程式 (1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1 # 一阶正则项,系数变小,防止过拟合 start = time.perf_co...

Python_DJ的博客 331

【CloudCompare】Windows源码编译CloudCompare

本文详细介绍了在Windows环境下编译安装CloudCompare V2.12.0的过程。首先配置了PCL 1.14.1、CMake 3.30.6和QT 5.14.2开发环境,使用Visual Studio 2022工具集。然后下载源码并通过CMake进行配置,特别注意勾选PLUGIN_STANDARD_QPCL以支持PCD文件加载。最后在VS2022中编译安装,并指出Debug模式下可能遇到的VTK库后缀问题,需添加CMAKE_DEBUG_POSTFIX变量解决。整个流程涵盖了从环境搭建到最终编译成功的

yijiujiusan的博客 484

利用Dify平台打造大学生专属AI模拟面试助手:从零到精通的完整指南

在这个充满竞争的就业市场中,拥有一个24小时在线的AI面试教练无疑是大学生求职路上的秘密武器。通过本文的指导,你已经掌握了使用Dify平台构建专业级模拟面试助手的全套技能。从环境部署、模型选择,到Prompt设计、知识库集成,再到高级功能开发和效果优化,我们一步步打造了一个能够适应不同岗位、提供专业反馈的智能面试系统。无论是技术岗的算法问答,还是咨询业的案例分析,或是外企的英语面试,你的定制助手都能提供针对性训练。更重要的是,这个方案具有极强的可扩展性。

专注于编程、AI、人工智能等多个领域内容研究和分析 2789

人工智能——岭回归(Python)

目录 1 概述 1.1 线性回归 1.2 岭回归 1.3 过拟合 2sklearn中的岭回归 3 案例 3.1 数据介绍: 3.2 实验目的: 3.3 数据特征如下: 4 Python实现 4.1 代码 4.2 结果 5 正则化 1 概述 1.1 线性回归 对于一般地线性回归问题,参数的求解采用的是最小二乘法,其目标函数如下: 参数w的求解,也可以使用如下矩阵方法进行: ...

weixin_46039719的博客 1万+

LangGraph教程8:LangGraph流式处理

流式处理可显著提升基于LLM应用的响应性。LangGraph支持两种流式模式:values模式返回每一步的完整结果,适合需要完整上下文处理的场景;updates模式仅返回增量变化,适用于实时更新需求。示例代码展示了如何用create_react_agent实现这两种模式,其中values模式完整记录处理流程,updates模式逐步输出结果。通过异步迭代输出流,开发者可以灵活选择适合应用场景的流式处理方式。

Cachel Wood的博客 618

【Python 3 机器学习基础】岭回归

岭回归是一种用于回归的线性模型,因此它的预测公式与普通最小二乘法相同。但在岭回归中,对系数(w)的选择不仅要在训练数据上得到好的预测结果,而且还要拟合附加约束。我们还希望系数尽量小。换句话说,w的所有元素都应接近于0.直观上来看,这意味着每个特征对输出的影响应尽可能小(即斜率很小),同时仍给出很好的预测结果。这种约束是所谓正则化(regularization)的一个例子。正则化是指对模型做显式约束...

冰度猎魂的博客 1345

uniapp - H5网页打包运行报错Failed to load resource: net::ERR_FILE_NOT_FOUND(uniApp打包成H5部署到服务器,打包h5白屏并报错页面空白)

Failed to load resource: net::ERR_FILE_NOT_FOUND,uniapp 坑之打包之后白屏,uniapp打包h5,HBuilderX 打包H5后空白报错 Failed to load resource: net::ERR FILE NOT_FOUND,UNI-APP H5应用白屏(空白页)解决方案,白屏并报错Failed to load resource: net::ERR_FILE_NOT_FOUND,uniapp开发,打包成H5部署到服务器,uniapp打包之后首页

🏆 前端领域优质创作者 3576

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

scikit-learn学习笔记(四)Ridge Regression ( 岭回归 )

岭回归通过对系数的大小施加惩罚来解决 普通最小二乘 的一些问题。 ridge coefficients ( 岭系数 ) 最小化了惩罚的残差平方和, 这里,  是控制收缩量的复杂度参数:  值越大,收缩量越大,因此系数变得对共线性变得更加鲁棒。 与其他线性模型一样,Ridge 将采用其拟合方法数组 X , y 并将其线性模型的系数  存储在其 coef_ 成员中: >>> f

春华秋实 4948

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

机器学习的练功方式(十)——岭回归

岭回归

弄鹊 1325

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

sklearn 逻辑回归/Ridge/LASSO

1. 逻辑回归sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’liblinear’,...

xxy_的博客 2088

AI_03_梯度下降和过拟合和归一化_07_岭回归_以及代码调用

做机器学习的时候,会把数据分为训练数据(训练模型)和测试数据(测试模型)。 归一化是对测试数据X进行处理,正则化是调整我们的损失函数(loss function) 归一化是预处理阶段做的 做机器学习/人工智能跟做web开发不一样,甚至跟大数据开发也不一样!!! 代码量会越来越少!!! 学人工智能是不是要恶补数学呢?用到时去看看就可以,毕竟你是去做工程类的,不是像一些个博士样的去研...

从2026-09-21开始专注于AI,以前是后端研发、大数据研发等 256

AI-机器学习-自学笔记(八)岭回归算法

岭回归算法是一种专门用于共线性数据分析的有偏估计回归方法, 实际上是一种改 良的最小 乘估计法,通过放弃最小 乘法的无偏性,以损失部分信息、降低精度为代 价,获得回归系数更符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘 。 在 scikit-leam 中实现岭回归算法的是 Ridge 类。 我们用波士顿数据集来验证一下岭回归算法 from pandas import read_csv from sklearn.model_selection import KFold ...

qq_41597915的博客 599

【火炉炼AI】机器学习004-岭回归器的构建和模型评估

【火炉炼AI】机器学习004-岭回归器的构建和模型评估 【本文所使用的Python库和版本号】: Python 3.5, Numpy 1.14, scikit-learn 0.19   在我的上一篇文章(【火炉炼AI】机器学习003-简单线性回归器的创建,测试,模型保存和加载)中,已经详细的讲解了简单线性回归器的构建和测试,简单线性回归器的优势在“简单”,运行速度快,但缺点也在于“简单”,过...

【科技老丁哥】的博客 1808

sklearn岭回归应用

sklearn岭回归应用 前言: 前面博文关于线性回归模型我们可以用梯度下降法或者标准方程法进行训练,但是两种方法各有优缺点。特别是标准方程法一个比较重要的缺点是数据存在不可逆现象则无法训练出结果,而岭回归就是解决标准方程法这一缺点出现的,岭回归模型是由带正则化的代价函数推导得到,他避免数据不可逆的现象,进而得到近似最优解。关于岭回归的具体理论请点击此处,到我的一篇博文中查看 一、sklearn岭...

Mekeater的博客 716

sklearn常用算法模型 KNN / 岭回归 / Lasso / Logistic / SVC / 决策树 / 贝叶斯 / K-Means

机器学习常用算法小结 有监督 有答案的 商用最多的,主要是分类 无监督 没有答案 半监督 部分有答案 使用有答案的数据进行训练模型,然后使用陌生数据进行验证 过拟合和欠拟合 过拟合:使用样本的特征过多,导致很多无用的特征被加入到计算中,导致模型泛化受到过多无用特征的影响,精度变得很低 欠拟合:在选取特征时,选取的过于简单,主要的特...

zhang_Ming_lu的博客 4万+

机器学习算法——岭回归

转载自:http://blog.youkuaiyun.com/google19890102/article/details/27228279一、一般线性回归遇到的问题    在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在:预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量时,最小二乘回归会有较小的方差时,容易产生过拟合时,最小二乘回归得不到有意义的结果模型的解释能力:如果模型...

flyyufenfei的博客 3075

三、岭回归

根据线性回归标准方程法的公式: 当数据特征n>样本个数m的时候,xTx会出现有一些行或者列全是0的情况,这就不是满秩矩阵(没有哪一行或列全是0),所以不可逆。 I这个单位矩阵的行列与xTx是一样的,且单位矩阵I是满秩矩阵,λ一般是一个比较小的数,xTx + λI 的结果就是一个满秩矩阵。所以可逆。 岭回归的公式是通过L2正则化推演出来的,推演过程如下: 没有加上正则化的代价函数,称之为...

胸毛飘荡的博客 737

记忆碎片之使用pycharm+python3.7+pip安装pytorch-CPU

第一步:从官网获取下载命令 pytorch官网链接 选择适合自己的版本 如果你的网络经过了科学处理,网速够快的话,可以直接在pycharm中使用这个命令安装 如果你的网络跟我的一样,跟蜗牛一样慢,那就用下面的办法 第二步:在pycharm中运行上面的pip命令 你会发现速度真的慢,Ctrl+C结束下载,只使用它提供的链接即可 第三步:点击下载链接 这个时候会自动从浏览器下载文件 如果没有下...

Python_DJ的博客 1498
上一篇: 记忆碎片之scrapy中使用logging模快
下一篇: 《封号码罗》数据分析与人工智能之sklearn模型Lasso岭回归(十二)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值