详解机器学习经典模型(原理及应用)——岭回归

一、什么是岭回归

        岭回归(Ridge Regression),也称为Tikhonov正则化(Tikhonov Regularization),是一种专门用于处理多重共线性(特征之间高度相关)问题的线性回归改进算法,显然它是一个回归模型。在多重共线性的情况下,数据矩阵可能不是满秩的,这意味着矩阵不可逆,因此不能直接使用普通最小二乘法(Ordinary Least Squares,OLS)来估计模型参数。岭回归通过在损失函数中添加一个正则化项(惩罚项)来解决这个问题。

二、岭回归模型建模流程

1、定义损失函数

        岭回归的损失函数是残差平方和(RSS)与正则化项的和。残差平方和是模型预测值与实际值之差的平方和,而正则化项是模型参数的L2范数(平方和)。岭回归的损失函数可以表示为:

L(\theta ) = \sum_{i=1}^{n}(y_{i}-\sum_{j=1}^{m}\theta _{j}x_{ij})^{2} + \lambda \sum_{j=1}^{m}\theta _{j}^{2}

        其中,n是样本数量,m是特征数量,y_{i}是第i个样本的目标值,x_{ij}是第i个样本的第j个特征值,\theta _{j}是第j个特征的权重,\lambda是正则化参数,控制正则化项的强度。正则化项的公式为后半部分,即:

\lambda \sum_{j=1}^{m}\theta _{j}^{2}

        正则化项的作用是惩罚模型参数的大小。当\lambda增大时,正则化项的影响增大,参数\theta趋向于较小的值,这有助于减少模型的复杂度和过拟合的风险。正则化项也可以使模型在面对多重共线性时更加稳定。在没有正则化(即\lambda=0)的情况下,岭回归退化为普通最小二乘回归

2、构建设计矩阵

        设计矩阵X是一个n×m的矩阵,其中每一行代表一个样本,每一列代表一个特征。通常在设计矩阵中加入一列值为1的偏置项,以便模型包含截距项。

3、参数估计

        岭回归的参数估计可以通过最小化损失函数来实现。由于损失函数是二次的,因此可以通过解析方法直接求解(比梯度下降更方便)。具体来说,岭回归的参数可以通过以下公式计算得到:

\theta = (X^{T}X+\lambda I)^{-1}X^{T}y

        其中,X是设计矩阵,y是目标值向量,\lambda是正则化参数,I是单位矩阵。这个公式提供了一个闭式解,意味着可以直接计算出参数\theta,而不需要进行迭代搜索计算。在实际应用中,直接计算(X^{T}X+\lambda I)^{-1}可能会遇到数值稳定性问题,尤其是当X^{T}X接近奇异或不可逆时。为了解决这个问题,可以使用奇异值分解(SVD)或其他数值稳定的方法来计算参数,当然这在scikit-learn之类的库内部已经默认使用了稳定的数值方法来求解参数,不需要人工进行迭代。

4、模型评估

        参数被计算出来之后,就可以使用它们来对新数据进行预测,并评估模型的性能。通常使用均方误差(MSE)或决定系数(R²)等指标来评估模型。

5、超参数选择

        正则化参数\lambda的选择对模型性能有很大影响,可以通过交叉验证来选择最佳的\lambda值。

三、模型应用

        这里使用经典的波士顿房价数据进行回归建模。

# 导入必要的库
from sklearn.datasets import load_boston
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 加载波士顿房价数据集
boston = load_boston()
X, y = boston.data, boston.target# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建岭回归模型实例,设置正则化参数alpha(就是公式中的λ)
ridge_reg = Ridge(alpha=1.0)# 训练模型
ridge_reg.fit(X_train, y_train)# 在测试集上进行预测
y_pred = ridge_reg.predict(X_test)# 计算均方误差(MSE)
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse:.2f}')# 可选:打印模型参数
print(f'Model coefficients: {ridge_reg.coef_}')
print(f'Model intercept: {ridge_reg.intercept_}')

四、总结

        岭回归模型是很简单的机器学习模型,但也是很常见的baseline模型,尤其是在数据特征数量多于样本数量,或者特征之间存在高度相关性的情况下,我们会倾向于先用岭回归建模看看效果。模型具体的优缺点如下:

1、优点

        (1)处理多重共线性:岭回归能够有效处理特征之间的高度相关性,提高模型的稳定性。

        (2)泛化能力:通过正则化减少模型的复杂度,降低过拟合的风险。

        (3)参数解释性:岭回归的参数估计具有较好的解释性,可以用于统计推断。

2、缺点

        (1)正则化参数的选择:需要选择合适的正则化参数,这需要依赖经验或者交叉验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1545145.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Go Mail设置指南:如何提升发送邮件效率?

Go Mail使用技巧与配置教程?如何用Go Mail实现发信? 随着工作负载的增加,如何高效地发送和管理邮件成为了许多职场人士面临的挑战。AokSend将为您提供一份详细的Go Mail设置指南,帮助您提升发送邮件的效率,让您的邮件…

Java网络编程、正则表达式、单例设计模式与Lombok

目录 Java网络编程、正则表达式、单例设计模式与Lombok Java网络编程 软件结构 网络基础知识 相关概念 IP地址 TCP协议和UDP协议介绍 TCP协议的三次握手和四次挥手 UDP协议编程 创建客户端 创建服务端 运行 TCP协议编程 创建客户端 创建服务端 运行 文件上传案例 创建客户端 创…

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张 风力发电机叶片表面缺陷识别数据集(Wind Turbine Blade Defects Recognition Dataset, WTBDRD) 摘要 WTBDRD 是一个专门为风力发电机叶片表面缺陷识别而设计的数据集,旨在为相关领…

OpenAPI鉴权(二)jwt鉴权

一、思路 前端调用后端可以使用jwt鉴权;调用三方接口也可以使用jwt鉴权。对接多个三方则与每个third parth都约定一套token规则,因为如果使用同一套token,token串用可能造成权限越界问题,且payload交叉业务不够清晰。下面的demo包…

探索图像生成大模型Imagen:从理论到代码实践

一、引言 在当今的人工智能领域,图像生成技术取得了令人瞩目的进展。其中,Imagen作为一款强大的图像生成大模型,吸引了众多研究者和开发者的目光。它能够生成高质量、逼真的图像,为艺术创作、游戏开发、虚拟现实等众多领域带来了无…

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall 数据集-目标检测系列-老虎检测数据集 tiger 数据量:6k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,享有百种数据集,持续增加中。 数据…

【算法】模拟:(leetcode)6.Z 字形变换(medium)

目录 题目链接 题目介绍 解法 1、模拟: 2、找矩阵中的规律: 公差 第一行和最后一行 中间行 代码 题目链接 6. Z 字形变换 - 力扣(LeetCode) 题目介绍 解法 1、模拟: 采用模拟的思想,按照Z字形&…

太速科技-383-基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA XCKU060-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡,搭配两路40G QSFP接口&#xff…

dev containers plugins for vscode构建虚拟开发环境

0. 需求说明 自用笔记本构建一套开发环境,用docker 虚拟插件 dev containers,实现开发环境的构建,我想构建一套LLMs的环境,由于环境配置太多,不想污染本地环境,所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…

Xilinx 使用DDS实现本振混频上下变频

文章目录 一、什么是混频?二、为什么要进行混频?三、Matlab实现混频操作四、FPGA实现混频上下变频操作4.1 例化IP4.2 仿真验证 一、什么是混频? 混频(Mixing)是信号处理中的一个核心概念,混频的本质是将两个…

C语言 | Leetcode C语言题解之第435题无重叠区间

题目: 题解: int cmp(int** a, int** b) {return (*a)[1] - (*b)[1]; }int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) {if (intervalsSize 0) {return 0;}qsort(intervals, intervalsSize, sizeof(int*), cm…

Git版本控制的使用教程

使用Git进行项目代码的版本控制,具体操作: 1). 创建Git本地仓库 当Idea中出现: 说明本地仓库创建成功。 2). 创建Git远程仓库 访问Gitee - 基于 Git 的代码托管和研发协作平台,新建仓库 点击 创建 3). 将本地文件推送到Git远程…

typename、非类型模板参数、模板参数的特化、模板类成员函数声明和定义分离、继承等的介绍

文章目录 前言一、typename二、非类型模板参数三、模板参数的特化1. 函数模板参数的特化2. 类模板的特化 四、模板类成员函数声明和定义分离1. 显示实例化(不建议使用)2. 将生命和定义写在同一个.h文件中 五、 继承总结 前言 typename、非类型模板参数、…

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型:Faster-Rcnn。我们使用DAMODEL云平台来实现,这是个很强大的云端平台,功能众多,你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…

【漏洞复现】用友 U8CRM getemaildata.php 任意文件读取漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

【VMware及CentOS7】安装 配置

一、VMware安装 这里选择的版本是16.1.2,这里不再赘述安装过程,无难点。 crack key: ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2UT6 ZF71R-DMX85-08DQY-8YMNC-PPHV8 110L3-9135J-M807A-08ARK-84V7L FF31K-AHZD1-H8ETZ-8WWE…

性能监控之Python实战SkyWalking链路追踪

文章目录 一、介绍二、SkyWalking支持的语言三、SkyWalking安装3.1 前提准备3.2 先安装ElasticSearch7.X3.3 Skywalking-OAP 安装3.4 Skywalking-UI 界面安装3.5 访问页面检查SkyWalking是否可以访问 四、Python 项目接入SkyWalking4.1 演示项目代码4.2 验证 sw-python4.3 配置…

【最基础最直观的排序 —— 选择排序算法】

最基础最直观的排序 —— 选择排序算法 选择排序算法是一种简单直观的排序算法。其基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小&a…

模型Alignment之RLHF与DPO

1. RLHF (Reinforcement Learning from Human Feedback) RLHF 是一种通过人类反馈来强化学习的训练方法,它能够让语言模型更好地理解和执行人类指令。 RLHF 的三个阶段 RLHF 的训练过程一般分为三个阶段: 监督微调(Supervised Fine-Tuning,…

echarts 导出pdf空白原因

问题阐述 页面样式: 导出pdf: 导出pdf,统计图部分为空白。 问题原因 由于代码中进行了dom字符串的复制,而echarts用canvas绘制,canvas内部内容不会进行复制,只会复制canvas节点,因此导出pdf空白。 解决…