支持向量机回归及其应用(附Python 案例代码)

使用支持向量机回归估计房价

让我们看看如何使用支持向量机(SVM)的概念构建一个回归器来估计房价。我们将使用sklearn中提供的数据集,其中每个数据点由13个属性定义。我们的目标是根据这些属性估计房价。

引言

支持向量回归(SVR)是一种用于回归任务的机器学习算法。它的目标是找到一个函数,使得数据点偏离该函数的距离在某个阈值内的情况下,该函数尽可能平滑。数学上,SVR 通过解决以下优化问题来实现:
min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n max ⁡ ( 0 , ∣ y i − ( w ⋅ x i + b ) ∣ − ϵ ) \min \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n \max(0, |y_i - (w \cdot x_i + b)| - \epsilon) min21w2+Ci=1nmax(0,yi(wxi+b)ϵ)
其中, w w w 是权重向量, b b b 是偏差, C C C 是惩罚参数, ϵ \epsilon ϵ 是不敏感阈值。
在这里插入图片描述

案例代码

# 导入所需的包
import numpy as np
from sklearn import datasets
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, explained_variance_score
from sklearn.utils import shuffle# 加载房价数据集
data = datasets.load_boston()# 打乱数据以避免分析偏差
X, y = shuffle(data.data, data.target, random_state=7)# 将数据集按照80/20的比例分割为训练集和测试集
num_training = int(0.8 * len(X))
X_train, y_train = X[:num_training], y[:num_training]
X_test, y_test = X[num_training:], y[num_training:]# 创建支持向量回归模型并使用线性核
# C 参数表示训练误差的惩罚,如果增大 C 的值,模型将更精细地拟合训练数据
# 这可能会导致过拟合并使其失去泛化能力
# epsilon 参数指定一个阈值,如果预测值与实际值的距离在此阈值内,则不会有训练误差的惩罚
sv_regressor = SVR(kernel='linear', C=1.0, epsilon=0.1)# 训练支持向量回归模型
sv_regressor.fit(X_train, y_train)# 评估回归器的性能并打印指标
y_test_pred = sv_regressor.predict(X_test)
mse = mean_squared_error(y_test, y_test_pred)
evs = explained_variance_score(y_test, y_test_pred)
print("\n#### 性能 ####")
print("均方误差 =", round(mse, 2))
print("解释方差分数 =", round(evs, 2))# 对测试数据点进行预测
test_data = [3.7, 0, 18.4, 1, 0.87, 5.95, 91, 2.5052, 26, 666, 20.2, 351.34, 15.27]
print("\n预测价格:", sv_regressor.predict([test_data])[0])

为了方便读者理解,这里我们对datasets.load_boston()
房价数据部分展示:

CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATPRICE
0.0063218.02.310.00.5386.57565.24.0900129615.3396.904.9824.0
0.027310.07.070.00.4696.42178.94.9671224217.8396.909.1421.6
0.027290.07.070.00.4697.18561.14.9671224217.8392.834.0334.7
0.032370.02.180.00.4586.99845.86.0622322218.7394.632.9433.4
0.069050.02.180.00.4587.14754.26.0622322218.7396.905.3336.2

运行代码应该得到以测试数据对应的房价预测结果:

#### 性能 ####
均方误差 = 15.41
解释方差分数 = 0.82
预测价格: 18.5217801073

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

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

相关文章

WHAT - 一个 Github 仓库的 License 如何解读

目录 一、背景二、解读许可证说明的作用常见的开源许可证类型使用他人代码仓库时需要注意的事项结论 实践作为开发者1. 选择许可证类型2. 在 README 文件中编写许可证信息 作为使用者1. 确定权限2. 了解和遵守条款 总结 一、背景 我们经常在一些 Github 仓库里看到 License 部…

Cache 替换策略--PLRU算法详解

一、引言 LRU(Least Recently Used)是 cache 的经典替换策略之一,但当 Cache 的路数比较大时(多路组相连结构),实现 LRU 的硬件开销就会变得很大。现代处理器一般会考虑使用 PLRU(pseudo-LRU&a…

Vue.js 2 项目实战(八):小黑记事本组件版

前言 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的设计初衷是通过采用简洁且强大的结构,使前端开发变得更简单和高效。以下是对 Vue.js 的详细介绍: 核心特性 声明式渲染 Vue.js 使用声明式语法来描述用户界面,通过数据绑…

用Swagger进行后端接口测试的实战操作

目录 一.什么是Swagger? 二.Swagger的使用操作流程: 1.在pom.xml配置文件导入 Knife4j 的依赖: 2.在config配置类中加入 Knife4j 的相关配置并设置静态资源映射(否则接口文档无法访问): 三.Swagger的四个…

xctf--debug

第一眼看着给我吓了一跳 我还以为是什么很牛逼壳 结果就是dnspy打开 这个函数什么ID都没有 只能一个一个点 但是逻辑真的很清晰 之前BUU写的题太复杂了,感觉可以看看这些题静下心 这个时候看着 攻防世界逆向高手题之debug_攻防世界debug-CSDN博客 这个博主的(我好多东西…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 亲子游戏(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

【轨物方案】电气设备数字档案解决方案

需求痛点 传统的电气设备铭牌只能显示固定的名称、日期、型号等信息,不能把与设备相关的其他重要信息展现出来,终端用户想要了解设备信息比较困难。尤其像项目资料类的文件查看,更是有很多不便之处,当设备出现问题后,找…

简要了解sql注入

sql注入安全测试中危害 数据库中的数据,对数据库数据进行操作(查询、删除等);网站的权限,找到注入点后可后门写入; sql注入产生原理详细分析 可控变量,带入数据库查询,变量未存在…

前后端打包部署 虚拟机jdk安装及配置环境变量 +安装nginx

mkdir deploy ll mkdir gateway auth system file 去idea打包 不要先打gateway 上传上去 出现这个问题是因为你jdk环境不一样 我的是17 所以我现在去官网下载一个 官网 :Java Downloads | Oracle 中国 mkdir software cd software/ wget https://download.oracl…

橙单前端项目下载编译遇到的问题与解决

今天下载orange-admin前端项目,不过下载下来运行也出现一些问题。 1、运行出现下面一堆错误,如下: 2、对于下面这个错误 error Expected linebreaks to be LF but found CRLF linebreak-style 这就是eslint的报错了,可能是原作者…

目标检测自顶向下入门

最近在学习Yolo和OpenCV这些计算机视觉的相关领域,把深度学习啃了个大概,准备着手学习一下Yolov5,趁着这个机会入门一下目标检测这个领域,也算是自顶向下地学习一遍吧。 目标检测 什么是目标检测 物体识别(Object de…

百川智能晋升200亿大模型独角兽

百川智能向创投日报记者确认,大模型创企百川智能已完成50亿元A轮融资;百川智能已成为国内第三家估值200亿元的大模型独角兽。 从包括百川智能在内的大模型创业企业的融资情况看,当前,选择出手大模型项目的资方出现从早期VC转向大…

如何穿透模糊,还原图片真实面貌

目录 图像清晰化的魔法棒:AI如何穿透模糊,还原图片真实面貌 前言 论文背景 论文思路 模型介绍 复现过程 演示视频 使用方式 本文所涉及所有资源均在传知代码平台可获取。 图像清晰化的魔法棒:AI如何穿透模糊,还原图片真实面貌 在我…

算法:[递归/搜索/回溯]二叉树的深搜

目录 题目一:计算布尔二叉树的值 题目二:求根节点到叶节点数字之和 题目三:二叉树剪枝 题目四:验证二叉搜索树 题目五:二叉搜索树中第k小的元素 题目六:二叉树的所有路径 题目一:计算布尔…

springboot整合 knife4j 接口文档

第一步&#xff1a;引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 第二步&#xff1a;写入配置 方…

猫头虎分享 || 最全Python的Scapy库基础知识点汇总

&#x1f431;‍&#x1f464; 猫头虎分享 || Python的Scapy库基础知识点汇总 摘要 Scapy 是一个强大的Python库&#xff0c;用于网络数据包的生成、解析和操作。通过Scapy&#xff0c;开发者可以轻松地创建自定义数据包&#xff0c;捕获网络流量&#xff0c;并执行网络扫描。…

二叉树的链式结构和顺序结构的增删查改

树的概念 树是一种非线性的数据结构&#xff0c;它是一个n个节点组成的具有层次关系的集合&#xff0c;一棵树由一个根节点和若干个其余节点构成&#xff0c;除了根节点外&#xff0c;其他的节点都由一个前驱和多个后继&#xff0c;而根节点可以有多个后继&#xff0c;但没有前…

探索 Blockly:自定义积木实例

3.实例 3.1.基础块 无输入 , 无输出 3.1.1.json var textOneJson {"type": "sql_test_text_one","message0": " one ","colour": 30,"tooltip": 无输入 , 无输出 };javascriptGenerator.forBlock[sql_test_te…

没打印机怎么打印东西?

在日常生活中&#xff0c;我们经常会遇到需要打印文件的情况&#xff0c;无论是学习资料、工作文档&#xff0c;还是个人兴趣的资料收集。然而&#xff0c;并不是每个人家里都有打印机&#xff0c;或者打印机出现了故障。在这种情况下&#xff0c;寻找一个高效、经济的打印途径…

通过 C# 写入数据到Excel表格

Excel 是一款广泛应用于数据处理、分析和报告制作的电子表格软件。在商业、学术和日常生活中&#xff0c;Excel 的使用极为普遍。本文将详细介绍如何使用免费.NET库将数据写入到 Excel 中&#xff0c;包括文本、数值、数组、和DataTable数据的输入。 文章目录 C# 在Excel单元格…