支持向量回归原理详解及Python代码示例

支持向量回归原理详解

        支持向量回归(Support Vector Regression, SVR)是支持向量机(SVM)的一种扩展,用于回归问题。SVR通过寻找一个最佳的回归超平面,使得尽可能多的数据点落在超平面附近的ε-管内,从而达到预测连续值的目的。

目录

支持向量回归原理详解

1. 支持向量回归的基本概念

2. 支持向量回归的数学表达

3. 支持向量回归的损失函数

4. 核函数

5. 参数选择

Python代码示例

代码解释


 

1. 支持向量回归的基本概念

        SVR的核心思想是通过对输入空间进行映射,并在高维空间中寻找一个最优的回归超平面。SVR的目标是平衡模型复杂度和误差,最终得到一个具有良好泛化能力的回归模型。

2. 支持向量回归的数学表达

        SVR的目标是找到一个函数 f(x)=w⋅x+b ,使得所有数据点 (xi,yi)的预测误差在ε以内,同时最小化 ∥w∥2。

        SVR的优化目标可以表示为:c1f53e0bfc70435b81c6fb63c86c6d05.png

        在约束条件:

672407f23dd847e0ac424b45f8e8a136.png

        其中, ξi和 ξi∗​ 是松弛变量,用于处理那些无法落在ε管内的数据点。

3. 支持向量回归的损失函数

        SVR使用ε不敏感损失函数(ε-insensitive loss function)来忽略绝对误差小于ε的数据点。损失函数可以表示为: c092a94386b34fe09934955638f36f66.png

4. 核函数

        SVR可以通过核函数(Kernel Function)将输入特征映射到高维空间,从而处理非线性问题。常用的核函数有线性核、多项式核、高斯核(RBF)等。

5. 参数选择

        SVR的主要参数包括:

  • C:正则化参数,控制模型复杂度与误差之间的权衡。
  • ε:ε-不敏感区域的宽度,控制模型对误差的容忍度。
  • 核参数:如高斯核中的γ参数,控制高维空间中的决策边界形状。

Python代码示例

以下是一个完整的Python代码示例:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split# 生成一些示例数据
np.random.seed(0)
x = np.sort(5 * np.random.rand(100, 1), axis=0)
y = np.sin(x).ravel()
y[::5] += 3 * (0.5 - np.random.rand(20))  # 添加噪声# 可视化原始数据
plt.scatter(x, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.title("Original Data")
plt.show()# 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)# 创建支持向量回归模型并进行拟合
svr_rbf = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=0.1)
svr_rbf.fit(x_train, y_train)# 预测结果
y_train_pred = svr_rbf.predict(x_train)
y_test_pred = svr_rbf.predict(x_test)# 可视化拟合结果
x_test_sorted = np.sort(x_test, axis=0)
y_test_pred_sorted = svr_rbf.predict(x_test_sorted)plt.figure()
plt.scatter(x_train, y_train, s=20, edgecolor="black", c="darkorange", label="train data")
plt.scatter(x_test, y_test, s=20, edgecolor="black", c="blue", label="test data")
plt.plot(x_test_sorted, y_test_pred_sorted, color="green", label="predictions", linewidth=2)
plt.title("Support Vector Regression")
plt.legend()
plt.show()# 打印模型参数和均方误差
print("Train Mean Squared Error:", mean_squared_error(y_train, y_train_pred))
print("Test Mean Squared Error:", mean_squared_error(y_test, y_test_pred))

代码解释

  1. 数据生成

    • 生成100个随机点,并将这些点排序。
    • 使用正弦函数生成目标值,并在部分数据上添加随机噪声以增加数据的复杂性。
  2. 数据可视化

    • 绘制生成的原始数据点,用散点图表示。
  3. 数据划分

    • 将数据划分为训练集和测试集,训练集占80%,测试集占20%。
  4. 模型训练

    • 使用SVR类构建支持向量回归模型,选择高斯核(RBF),设置参数C=100gamma=0.1epsilon=0.1
    • 在训练数据上进行拟合。
  5. 结果预测

    • 在训练集和测试集上进行预测,生成预测结果。
    • 对测试数据按顺序排序,以便于绘制预测曲线。
  6. 可视化拟合结果

    • 绘制训练数据、测试数据及模型的预测结果,观察模型的拟合效果。
  7. 模型评估

    • 计算并打印训练集和测试集的均方误差(MSE),评估模型的拟合性能。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eNSP中VRRP的配置和使用

一、基础配置 1.新建拓扑图 2.配置vlan a.CORE-S1 <Huawei>system-view [Huawei]sysname CORE-S1 [CORE-S1]vlan 10 [CORE-S1-vlan10]vlan 20 [CORE-S1-vlan20]vlan 30 b.CORE-S2 <Huawei>system-view [Huawei]sysname CORE-S2 [CORE-S2]vlan 10 [CORE…

240627_图像24位深度(RGB图)转为8位深度(单通道图)

240627_图像24位深度&#xff08;RGB图&#xff09;转为8位深度&#xff08;单通道图&#xff09; 在使用网络上下载下来的一部分图像分割数据集时&#xff0c;有些标签图你看着是一个黑白图&#xff0c;但是他还是有可能是一张RGB三通道图&#xff0c;具体怎么区分呢。右击图…

FPGA - 图像灰度化

一&#xff0c;灰度图像概念 灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度&#xff0c;尽管理论上这个采样可以任何颜色的不同深浅&#xff0c;甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同&#xff0c;在计算机…

如何预防和处理他人盗用IP地址?

IP地址的定义及作用 解释 IP 地址在互联网中的作用。它是唯一标识网络设备的数字地址&#xff0c;类似于物理世界中的邮政地址。 1、IP地址盗窃的定义 解释一下什么是IP地址盗用&#xff0c;即非法使用他人的IP地址或者伪造IP地址的行为&#xff0c;这种行为可能引发法律和安…

hadoop离线与实时的电影推荐系统-计算机毕业设计源码10338

摘 要 随着互联网与移动互联网迅速普及&#xff0c;网络上的电影娱乐信息数量相当庞大&#xff0c;人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的离线与实时的电影推荐系统 成为一个热门。然而电影信息的表示相当复杂&#xff0c;己有的相似度计算方法与推荐算法都各…

02逻辑代数与硬件描述语言基础

2.1 逻辑代数&#xff08;简单逻辑的运算&#xff09; 2.2 逻辑函数的卡诺图&#xff08;从图论的角度&#xff09;化简法 2.3 硬件描述语言Verilog HDL基础&#xff08;研究生阶段才用得到&#xff09; 要求&#xff1a; 1、熟悉逻辑代数常用基本定律、恒等式和规则。 2、掌握…

武汉高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

随着科技的不断进步和工业4.0的深入推进&#xff0c;智能制造已成为现代工业发展的重要方向。在这一背景下&#xff0c;武汉高校大学智能制造实验室积极响应国家号召&#xff0c;致力于将先进的数字孪生技术与智能制造教育相结合&#xff0c;打造了一个集教学、实训、科研于一体…

【JavaScript】事件绑定

目录 一、什么是事件 二、常见事件 2.1 鼠标事件 2.2 键盘事件 2.3 表单事件 2.4 页面加载事件 三、浏览器弹窗三种方式 四、事件绑定函数方式 五、事件触发方式 一、什么是事件 事件就是行为动作。在HTML中事件可以是浏览器的行为&#xff0c;也可以是用户的行为。当这些行为发…

基于esp-idf的arm2d移植

什么是ARM2D Arm在Github上发布了一个专门针对“全体” Cortex-M处理器的2D图形加速库——Arm-2D 我们可以简单的把这个2D图形加速库理解为是一个专门针对Cortex-M处理器的标准“显卡驱动”。虽然这里的“显卡驱动”只是一个夸张的说法——似乎没有哪个Cortex-M处理器“配得上…

丝杆支撑座:滚珠丝杆稳定运行的守护者!

丝杆支撑座是丝杆和电机之间连接的重要组成部分&#xff0c;发挥着非常重要的功能。提到丝杆支撑座和滚珠丝杆&#xff0c;很多人都会想到支撑关系&#xff0c;但丝杆支撑座作为滚珠丝杆系统中至关重要的角色&#xff0c;其作用远不止于简单的支撑。 丝杆支撑座安装过程非常简单…

绘唐3是免费的吗?

绘唐科技是一家中国电子信息产品制造商和供应商&#xff0c;成立于2005年。公司主要经营智能硬件、智能穿戴设备、智能家居设备和智能交通设备等领域的产品开发和销售。绘唐科技拥有强大的研发团队和制造能力&#xff0c;能够为客户提供定制化的产品解决方案。 绘唐科技的产品种…

CS-隐藏防朔源-数据转发-iptables(Linux自带的防火墙)

免责声明:本文仅做技术交流与学习... 目录 准备环境: 1-iptables转发机设置转发: 2-CS服务器配置iptables服务器的IP 准备环境: 两台外网服务器. --iptables服务器就是做一个中转...封了中转就没了... 1-iptables转发机设置转发: iptables -I INPUT -p tcp -m tcp --dport 8…

ACC:Automatic ECN Tuning for High-Speed Datacenter Networks 相关知识点介绍(一)

目录 ACC&#xff08;Adaptive Congestion Control&#xff09; 总结 结合 ACC 和 ECN ECN ECN&#xff08;Explicit Congestion Notification&#xff09; 静态 ECN 动态 ECN 对比 总结 FCT——flow completion time 具体解释 小鼠流和大象流 小鼠流&#xff08;…

【最新综述】基于伪标签的半监督语义分割

Semi-Supervised Semantic Segmentation Based on Pseudo-Labels: A Survey 摘要&#xff1a; 语义分割是计算机视觉领域的一个重要而热门的研究领域&#xff0c;其重点是根据图像中像素的语义对其进行分类。然而&#xff0c;有监督的深度学习需要大量数据来训练模型&#xff…

GPT-5的到来:智能飞跃与未来畅想

IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂确认了GPT-5的发布计划&#xff0c;预计将在一年半后推出。穆拉蒂形象地将GPT-4到GPT-5的飞跃比作高中生到博士生的成长。这一飞跃将给我们带来哪些变化&#xff1f;GPT-5的…

电路笔记(电源模块):TPS82130降压模块

芯片引脚说明 Layer 1 1 2 3 4 5 6 7 8 SS/TR PG FB VOUT EN VIN GND VOUT Thermal Pad 使能引脚&#xff0c;高电平启动。 反馈参考引脚。 连接到该引脚的外部电阻分压器对输出电压进行编程。 电源开漏输出引脚。 软启动和电压跟踪引脚。 上拉电阻可以连接到任何低于6V的电压。…

如何使用WxPusher向个人微信推送发送实时消息,比如定时任务等

wxpusher-sdk-java这个框架开源了&#xff1a;GitHub - wxpusher/wxpusher-sdk-java: 微信消息实时推送服务[WxPusher]的Java版本sdk&#xff0c;可以通过API实时给个人微信推送消息。wechat pusher. 文档地址&#xff1a;WxPusher微信推送服务 WxPusher (微信推送服务)是一个…

湖北大学2024年成人高考函授报名专升本教育学专业介绍

湖北大学&#xff0c;作为一所历史悠久、文化底蕴深厚的学府&#xff0c;其成人高等继续教育体系更是为广大学子提供了一片展翅高飞的蓝天。在这片知识的海洋中&#xff0c;专升本教育学专业如同一颗璀璨的明珠&#xff0c;闪耀着智慧的光芒。 湖北大学的专升本教育学专业&…

Postgresql从小白到高手 九 : psql高级查询及内部视图使用

Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询 文章目录 Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询一、多表查询二、pgsql内部表1.内部表2.内部表查询应用 一、多表查询 内联 &#xff1a;inner join on 简写 join on 结果集只有符合 筛选条件…

Android U Settings 应用中 APN 菜单实现的代码逻辑

功能简介 MobileNetwork移动网络设置页面下有【接入点设置】(APN)。 问题:为什么Controller初始化找不到pref,然后报错。 Note:什么时候切换成Controller的呢?在Android T&U 上还没有更新成kt实现 ,但是已经有Controller的方案。 流程逻辑 1、界面“telephony_a…