支持向量机回归预测SVR——MATLAB超详细代码实现过程

        本文主要针对支持向量机回归预测在MATLAB中的实现过程进行陈述,方便读者可以快速上手实现SVR回归预测,对支持向量机的原理将不再进行陈述。在MATLAB中实现相关向量机回归预测主要是调用MATLAB自带的SVR工具箱,所以了解工具箱的相关参数的基本设置是很有必要的。接下来让我们一起来学习MATLAB实现SVR的具体流程吧。

第一步:清空变量,导入数据,数据一般都是多输入单输出,假设数据有13列,那么前12列为输入值,最后一列为输出值,具体实现代码如下:

 第二步:数据归一化,将数据进行简单归一化处理,将数据归一到同一量纲上,有利于提高精度。主要用到MATLAB中mapminmax函数,实现函数如下:

第三步:经过归一化之后,就可以设置SVR的基本参数了,主要有两个参数需要设置,分别是惩罚系数c和核函数宽度g。其他基本参数如下:
options:可用的选项即表示的涵义如下
        -s    svm类型: SVM设置类型(默认0)
             0 -- c-svc
            1 --v-svc
            2 -一类SVM
            3 -- e -svR
            4 -- v-sVR
       -t  核函数类型:核函数设置类型(默认2)
            0-线性: u'v
            1 -多项式:(r*u 'v + coef0)^degree
            2- RBF函数: exp(-r|u-v|^2)
            3 -sigmoid: tanh(r*u'v + coef0)
      -d degree:核函数中的degree设置(针对多项式核函数)(默认3)
      -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)-r coefe:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认e)
      -c cost:设置c-svc. e -SVR和v-SVR的参数(损失函数)(默认1)
      -n nu:设置v-Svc,一类SVM和v- SVR的参数(默认0.5)
      -p p:设置e -sVR中损失函数p的值(默认0.1)
      -m cachesize:设置cache内存大小,以MB为单位(默认4日)-e eps:设置允许的终止判据(默认e.ee1)
      -h shrinking:是否使用启发式,0或1(默认1)
      -wi weight:设置第几类的参数c为weight*c(c-svc中的C)(默认1)-v n: n-fold交互检验模式,n为fold的个数,必须大于等于2
    其中-g选项中的k是指输入数据中的属性数。option -v随机地将数据剖分为n部分并计算交互检验准确度和均方根误差。

在设置所有的参数之后,开始对SVR进行训练,训练函数为svmtrain(),使用格式如下图:

第四步:模型建立好了之后就可以对我们的测试集进行预测。主要通过函数svmpredict()进行预测,使用格式如下:(在这里很多人就会一个疑问,为什么预测的时候要把测试集的输出值也带进去预测呢?其实带测试集的输出值进入主要是为了计算误差error,在预测的时候没有用到测试集的输出值)最后对我们预测出来的值进行一次反归一化就得到我们预测出来的真实值了

第五步:计算相关的误差,如RMSE、MSE、R^2等 

最后代码的运行结果如下:

需要代码的同学,可以私聊我拿代码!免费

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

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

相关文章

【UE5】五大基类及其使用

UObject UObject表示对象,准确来说,虚幻引擎中的对象基础类为UObject UObject提供了以下功能: 垃圾收集(Garbage collection)引用自动更新(Reference updating)反射(Reflection&am…

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能:仿真原理图PCB图程序设计:设计报告实物图资料清单(提供资料清单所有文件):资料下载链接: 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频) 仿真图proteus …

Redis的性能,哨兵模式,集群,

Redis的性能管理; redis的数据保存在内存中 redis-cli info memory redis内存使用info memory命令参数解析 used_memory:236026888 由 Redis 分配器分配的内存总量,包含了redis进程内部的开销和数据占用的内存,以字节(byte&#xff09…

JS中的OOP

JS中的OOP OOP 为我们解决了什么问题?想象一下,我们希望为教师提供一个平台,每位注册的教师都可以提交分数,并为课程分配作业和其他内容。 如果有一个地方(在本例中是一个对象),可以访问所有教…

android keylayout键值适配

1、通过getevent打印查看当前keyevent数字对应事件和物理码 2、dumpsys input 查看输入事件对应的 KeyLayoutFile: /system/usr/keylayout/Vendor_6080_Product_8060.kl 3、通过物理码修改键值映射,修改/system/usr/keylayout/目录下的文件

Docker可视化管理界面工具Portainer安装

Portainer是Docker容器管理界面工具,可以直观的管理Docker。 部署也很简单: 官方安装文档地址 1、创建数据卷 docker volume create portainer_data2、下载允许容器 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restartalways -v /v…

归并排序算法

文章目录 归并排序一、归并排序思路二、归并排序算法模板三、题目代码 归并排序 一、归并排序思路 二、归并排序算法模板 void merge_sort(int q[], int l, int r) {if (l > r) return;int mid l r >> 1;//中间值merge_sort(q, l, mid);merge_sort(q, mid 1, r);…

程序环境和预处理(详解版)

我们已经学到这里,这就是关于C语言的最后一个集中的知识点了,虽然它比较抽象,但是了解这部分知识,可以让我们对C代码有更深层次的理解,知道代码在每一个阶段发生什么样的变化。让我们开始学习吧! 目录 1.程序的翻译环…

Flutter学习(四)如何取消listview的越界效果

背景 在flutter的开发过程中,ListView是很常见的一个组件,但是,由于ListView的某些自带的体验,导致不太好的用户体验。例如ListView中,滑动到顶部或者底部的时候,再次滑动,会有越界的效果&…

C语言——从键盘输人一个表示年份的整数,判断该年份是否为闰年,并显示判断结果。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int year 0;printf("请输入年份&#xff1a;");scanf("%d",&year);if((year%4 0) && (year%100!0) || (year%400 0)){printf("%d是闰年\n",year);}else{p…

Python+jieba+wordcloud实现文本分词、词频统计、条形图绘制及不同主题的词云图绘制

目录 序言&#xff1a;第三方库及所需材料函数模块介绍分词词频统计条形图绘制词云绘制主函数 效果预览全部代码 序言&#xff1a;第三方库及所需材料 编程语言&#xff1a;Python3.9。 编程环境&#xff1a;Anaconda3&#xff0c;Spyder5。 使用到的主要第三方库&#xff1a;…

GeoTrust SSL数字安全证书介绍

一、GeoTrust OV证书的介绍 GeoTrust OV证书是由GeoTrust公司提供的SSL证书&#xff0c;它是一种支持OpenSSL的数字证书&#xff0c;具有更高的安全性和可信度。GeoTrust是全球领先的网络安全解决方案提供商&#xff0c;为各类用户提供SSL证书和信任管理服务。GeoTrust OV证书…