本文主要针对支持向量机回归预测在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等
最后代码的运行结果如下:
需要代码的同学,可以私聊我拿代码!免费
为了改善SVM
回归
的预测性能,可以使用粒子群算法(Particle Swarm Optimization,简称PSO)来优化SVM的参数。接下来,我们设置了粒子群算法的参数,并运行粒子群算法进行优化,得到最优参数x_opt。最后,我们计算了预测结果的均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE),并将结果显示出来。需要注意的是,以上
代码
中的数据集、特征和目标值的加载、预处理等步骤并未提及,这些步骤根据具体的应用场景和数据集进行相应的处理和准备。如有任何问题,请随时提问。
Matlab
实现
EMD-S
VR
经验模态分解结合
支持向量机
回归
的时间序列预测(完整源码和数据)
Matlab
实现
EMD-S
VR
经验模态分解结合
支持向量机
回归
的时间序列预测(完整源码和数据)
Mean squared error = 6.1843e-05 (regression)
Squared correlation coefficient = 0.99938 (regression)
Mean squared error = 0.0118557 (regression)
Squared correlation coefficient = 0.993916 (regression)
训练集数据的R2为:0.99732
测试集数据的R2为:0.99298
训练集数据的MAE为:0.00098418
测试集数据的MAE为:0.0012093
训练集数据的MBE为:-3.8852e-05
测试集数据的MBE为:-0.00043919
Matlab
实现
S
VR
支持向量机
回归
的时间序列预测(完整源码和数据)
Matlab
实现
S
VR
支持向量机
回归
的时间序列预测(完整源码和数据)
Matlab
实现
S
VR
支持向量机
回归
的时间序列预测(完整源码和数据)
Mean squared error = 0.00020072 (regression)
Squared correlation coefficient = 0.995779 (regression)
Mean squared error = 0.00272926 (regression)
Squared correlation coefficient = 0.920557 (regression)
历时 1.717313 秒。
训练集数据的R2为:0.99577
测试集数据的R2为:0.91975
训练集数据的MAE为:0.0012447
测试集数据的MAE为:0.0032586
训练集数据的MBE为:-6.4763e-05
测试集数据的MBE为:-0.00059111
以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)-r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)-c cost:设置C-SVC,e -S
VR
和v-S
VR
的参数(损失函数)(默认1)-d degree:核函数中的degree设置(针对多项式核函数)(默认3)
S
VR
的目标是找到最适合数据点的
超
平面,同时允许误差容限。传统的
回归
模型专注于最小化错误,而 S
VR
则专注于特定范围内的数据点。S
VR
的前提是只支持向量和接近边缘的数据点,这会显着影响模型的性能。这是机器学习中的重要一步,它将所有特征都放在相似的尺度上。通过缩放特征,算法可以更快地收敛和更好地执行,从而产生更准确和可靠的模型。它是
支持向量机
(SVM) 的一部分,用于变量之间的非线性关系。下面的
代码
适合并将 x 和 y 变量转换为相似的比例。在这一步中,我们将使用上述缩放数据来训练我们的模型。
支持向量机
(SVM,support vector machine)是一种二类分类模型,其基本模型定义为**特征空间上的间隔最大的线性分类器**,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
基于麻雀搜索算法优化的
支持向量机
分类与预测及其
MATLAB
代码
实现
文章目录基于麻雀搜索算法优化的
支持向量机
分类与预测及其
MATLAB
代码
实现
1. 基于麻雀搜索算法优化的
支持向量机
预测简介1.1
支持向量机
回归预测
简介1.2 麻雀搜索算法简介2. 参数优化数学模型3. 基于麻雀搜索算法优化的
支持向量机
回归预测
模型构建4. SSA-S
VR
回归预测
模型的参数设置5. 运行结果6.
MATLAB
代码
1. 基于麻雀搜索算法优化的
支持向量机
预测简介
1.1
支持向量机
回归预测
简介
支持向量
回归
(Support Ve