支持向量机回归预测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等 

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

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

  • 169
    点赞
  • 522
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 213
    评论
支持向量机回归预测模型是一种用于进行回归分析的机器学习模型。它的目标是根据给定的训练数据,建立一个可以对新的数据进行预测的模型。 在支持向量机回归模型中,我们首先将数据映射到一个高维特征空间,然后通过寻找一个平面来拟合数据。这个平面的选择是基于最大化训练数据与拟合平面之间的间隔,即间隔最大化。这样可以确保模型对新数据的预测具有较高的准确性。 在MATLAB实现支持向量机回归预测模型过程主要是调用MATLAB自带的SVR工具箱。在使用该工具箱时,需要设置一些参数,如核函数类型、正则化参数等,以便根据实际情况进行模型的调整和优化。 模型的建立完成后,可以使用svmpredict()函数对测试集进行预测。在预测过程中,需要将测试集的输出值作为输入,以计算误差。最后,对预测的结果进行反归一化,即将预测值还原为真实值。 这样,我们就可以利用支持向量机回归预测模型对新的数据进行预测,并得到相应的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [支持向量机回归预测SVR——MATLAB详细代码实现过程](https://blog.csdn.net/rouse_xing/article/details/129333869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [支持向量机:原理与python案例](https://blog.csdn.net/zzh1464501547/article/details/126801279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 213
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB实践家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值