Scikit-Learn支持向量机回归

Scikit-Learn支持向量机回归

    • 1、支持向量机回归
      • 1.1、最大间隔与SVM的分类
      • 1.2、软间隔最大化
      • 1.3、支持向量机回归
      • 1.4、支持向量机回归的优缺点
    • 2、Scikit-Learn支持向量机回归
      • 2.1、Scikit-Learn支持向量机回归API
      • 2.2、支持向量机回归初体验
      • 2.3、支持向量机回归实践(加州房价预测)



1、支持向量机回归


支持向量机(Support Vector Machine,SVM)算法既可以用于回归问题(SVR),也可以用于分类问题(SVC)。通常情况下,SVM用于分类问题,但后来也被扩展用于回归问题。SVM(回归)在机器学习知识结构中的位置如下:

1.1、最大间隔与SVM的分类


SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化

如图所示,三条直线分别代表三个SVM分类器,请问哪一个分类器比较好?

在这里插入图片描述
凭直观感受答案应该是H3。首先H1不能把类别分开;H2可以,但分割线与最近的数据点只有很小的间隔,如果测试数据有一些噪声的话可能就会被H2错误分类(即对噪声敏感、泛化能力弱)。H3以较大间隔将它们分开,这样就能容忍测试数据的一些噪声,是一个泛化能力不错的分类器

对于支持向量机来说,数据点若是p维向量,我们用p−1维的超平面来分开这些点。但是可能有许多超平面可以把数据分类。最佳超平面的一个合理选择就是以最大间隔把两个类分开的超平面。因此,SVM选择能够使离超平面最近的数据点的到超平面距离最大的超平面

以上介绍的SVM只能解决线性可分的问题,为了解决更加复杂的问题,支持向量机学习方法由简至繁可分为三类:

  • 线性可分SVM

    当训练数据线性可分时,通过硬间隔(Hard Margin)最大化学习一个线性的分类器,即线性可分支持向量机(亦称作硬间隔支持向量机)

  • 线性SVM

    当训练数据不能线性可分但是可以近似线性可分时,通过软间隔(Soft Margin)最大化学习一个线性的分类器,即线性支持向量机(又称作软间隔支持向量机)

  • 非线性SVM

    当训练数据线性不可分时,通过使用核技巧(Kernel Trick)及软间隔最大化可以学习非线性支持向量机,等价于隐式地在高维特征空间中学习线性支持向量机

1.2、软间隔最大化


在实际应用中,完全线性可分(硬间隔)的情况非常少见。例如下面的分类图,我们没有办法找到一条直线,把空间划分为2个区域,因此,要对其进行切分,有以下两种方案:

1)仍然使用直线,不过不追求完全可分,适当包容一些分错的情况(线性SVM)

在这里插入图片描述
在这个过程中,我们会在模型中加入惩罚函数,尽量让分错的点不要太多。对分错点的惩罚函数就是这个点到其正确位置的距离

如上图所示,黄色、蓝色的直线分别为支持向量所在的边界,黑色的线为决策函数,那些绿色的线表示分错的点到其相应的决策面的距离,这样我们可以在原函数上面加上一个惩罚函数,并且带上其限制条件为:

在这里插入图片描述
上式为在线性可分问题的基础上加上的惩罚函数部分,当 x i x_i xi在正确一边的时候, ε i \varepsilon_i εi=0,R为全部的样本点的数目,C是惩罚系数

  • 当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重
  • 当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确

C越小对误分类的惩罚越小,C越大对误分类的惩罚越大,当C取正无穷时就变成了硬间隔优化。C越小越容易欠拟合,C越大越容易过拟合。实际应用中我们也会调整和选择合适的C值

2)用曲线将其完全分开,即非线性的决策边界(非线性SVM)

在这里插入图片描述
如果我们要处理的分类问题更加复杂,甚至不能像上面一样近似线性可分,这种情况下找到的超平面分错的程度太高,是不可接受的

对于这样的问题,解决的方案是将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,然后再运用SVM求解。这个映射的函数称为核函数

在这里插入图片描述
更多关于软间隔与硬间隔、SVM的损失函数、核函数以及SVM分类的介绍详见文章:传送门

1.3、支持向量机回归


支持向量机回归的核心思想是通过最小化预测误差来拟合数据,并且在拟合过程中保持一个边界(间隔),使得大部分数据点都落在这个边界之内。SVR与分类问题中的支持向量机(SVC)类似,但其目标是拟合数据而不是分离数据

在SVC中,在数据集线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的数据点称为支持向量(Support Vector)

在这里插入图片描述
即所有在直线 ω X \omega X ωX+ b b b= 1 1 1和直线 ω X \omega X ωX+ b b b= − 1 -1 1上的点。在决定最佳超平面时只有支持向量起作用,而其他数据点并不起作用

与SVC类似,在SVR中,我们同样定义一个边界,由一个中心线和两个平行的边界线组成。这些边界线之间的距离称为间隔,它由用户预先设定。SVR的目标是找到一个函数,使得大部分数据点都落在间隔内,并

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

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

相关文章

TikTok账号养号的流程分享

对于很多刚开始运营TikTok的新手小白来说,都会有一个同样的疑问,那就是:TikTok到底需不需要养号?这里明确告诉大家是需要养号的,今天就把我自己实操过的养号经验和策略总结出来,分享给大家。 一、什么是Ti…

国产24位I2S输入+192kHz立体声DAC音频数模转换器CJC4344

CJC4344是一款立体声数模转换芯片,内含插值滤波器、multi bit数模转换器、输出模拟滤波器。CJC4344系列支持大部分的音频数据格式。CJC4344基于一个带线性模拟低通滤波器的四阶multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主时钟频率&#xf…

【面试八股总结】Redis数据结构及底层实现

一、五种基本数据结构 Redis 提供了丰富的数据类型,常见的有五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合&#xff0…

C语言中的内存动态管理

1.为什么有动态内存管理 int a20;//开辟4个字节 int arr[10]{0};//开辟40个字节 上述的代码有两个特点 1.开辟空间的大小是固定的。 2.数组在申明的时候已经固定了大小,无法更改。 这样写代码不够灵活,所以c语言中引入了动态内存管理,让程序…

Springboot整合Kafka消息队列服务实例

一、Kafka相关概念 1、关于Kafka的描述 Kafka是由Apache开源,具有分布式、分区的、多副本的、多订阅者,基于Zookeeper协调的分布式处理平台,由Scala和Java语言编写。通常用来搜集用户在应用服务中产生的动作日志数据,并高速的处…

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

Maven下载安装、环境配置(超详细)(包括Windows、IDEA)

目录 一、引言 二、下载和安装 Maven (1)首先保证 Java 的环境是正常的。 1、电脑桌面上右击 " 此电脑 ",点击属性。 2、点击高级系统设置。 3、点击环境变量。 4、找到系统变量中的 Path。 5、点击新建,然后把…

深度剖析ElasticSearch分页原理与深分页问题|ES深分页问题|ES分页原理剖析

文章目录 ES分页|Paginate search resultsES深分页的问题一页获取数据量太大,报错分页深度太大,报错官方解释 其他解决方案Search after解决两个问题 有没有深分页查询的必要性?search after & PIT的使用方式1.创建pit2.首次查询3.之后的…

【C++】#20,#21

#20类和对象 #include <iostream>using namespace std;class Box{public: //公有 double length; //ctrle复制本行 double width;double height;void getVolume(){ //方法带&#xff08;&#xff09; cout<<"盒子体积为&#xff1a;"<<le…

我在高职教STM32——LCD液晶显示(1)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

十、数据结构(图的基础)

文章目录 什么是图图的分类图算法的复杂度 图的模拟怎么储存一个图邻接矩阵&#xff1a;邻接矩阵的定义方式优劣分析 邻接表优劣分析实现代码 链式前向星实现代码优劣分析 图的遍历某个点的连通性拓扑排序1.拓扑排序的概念2.图的入度和出度3.基于 B F S BFS BFS的拓扑排序复杂度…

uniapp公用返回组件

uniapp写一个公用的头部组件&#xff0c;包含home和返回。 页面中的引用 2.在components文件夹下&#xff0c;新建一个navBar.vue <template><view class"view-wrap"><view :style"{ height: barHeight }"></view><view cla…

web前端之vue一键部署的shell脚本和它的点.bat文件、海螺AI、ChatGPT

MENU 前言vite.config.ts的配置deploy文件夹的其他内容remote.shpwd.txtdeploy.bat 前言 1、在src同级新建deploy.bat文件&#xff1b; 2、在src同级新建deploy文件夹&#xff0c;文件夹中新建pwd.txt和remote.sh文件&#xff1b; 3、配置好后&#xff0c;直接双击deploy.bat文…

Flat Ads:轻松玩转Kwai广告,开启全球营销新篇章

在当今数字化时代,短视频平台已成为人们生活中不可或缺的一部分。其中,快手旗下的一款海外短视频应用——Kwai 在海外新兴的拉美、中东、东南亚等多个市场迅速崛起并赢得了广大用户的喜爱。 作为全球头部短视频平台,Kwai 已遍布世界30多个国家,月活超过10亿,APP下载量位居拉美、…

怎么给软件做数字证书签名?

要想让软件获得身份并让计算机识别软件发布者就需要申请数字证书&#xff0c;CA机构严格实名认证后签发的数字证书就可以对指定的软件签名使用。 代码签名是使用数字证书对软件、固件、脚本和可执行文件进行签名的过程&#xff0c;旨在向最终用户和客户保证代码的完整性和真实…

【深度学习驱动流体力学】剖析流体力学可视化paraview原理

目录 1.paraview版本2.配置过程检查插件库文件配置 ParaView 环境变量启动 ParaView 并检查插件3.可视化测试插件功能 3.加载数据进行可视化第一步: 导入案例第二步:查看当前目录未更新前的内容第三步:使用 blockMesh 命令生成腔体案例的网格第四步:运行仿真icoFoam第五步:使用…

短剧APP开发,探索短剧市场的新机遇

近几年&#xff0c;短剧市场得到了繁荣发展&#xff0c;随着短剧的快速发展&#xff0c;短剧APP也得到发展&#xff0c;受到了越来越多用户的喜欢。通过短剧APP&#xff0c;为大众带来多样、高质量的短剧内容。对于影视创作者来说&#xff0c;短剧APP在线观看系统的开发也将成为…

安装ps提示vcruntime140.dll丢失的多种有效的解决方法分享

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到vcruntime140.dll”。这个错误通常出现在运行某些程序时&#xff0c;特别是ps这样的图像处理软件。那么&#xff0c;如何解决这个错误呢&#xff1f;小编将为您详细介绍打开提示ps找…

【车载音视频AI电脑】全国产海事船载视频监控系统解决方案

海事船载视频监控系统解决方案针对我国快速发展的内河航运、沿海航运和远洋航运中存在的航行安全和航运监管难题&#xff0c;为船舶运营方、政府监管部门提供一套集视频采集、存储、回放调阅为一体的视频监控系统&#xff0c;对中大型船舶运行中的内部重要部位情况和外部环境进…

Windows的hosts文件中配置域名——在host文件中添加域名与IP的映射关系

Windows配置域名解析——在hosts文件中添加映射关系 要配置域名解析&#xff0c;步骤如下&#xff1a; 首先选中Windows的hosts文件——即C:\Windows\System32\drivers\etc&#xff0c;右键属性&#xff0c;在属性对话框中选中“安全”选项卡&#xff0c;点击“编辑”按钮&…