SVR支持向量回归例子「建议收藏」

SVR支持向量回归例子「建议收藏」SVR支持向量回归例子欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用M…

大家好,又见面了,我是你们的朋友全栈君。

SVR软件包的安装:https://www.cnblogs.com/Ran-Chen/p/9462825.html
%使用SVR模型,得到输入矢量x(x包含3个变量x1,x2,x3)到输出矢量y(y只包含一个变量)之间的映射关系,也就是计算y=f(x1,x2,x3)函数的f
%x1,x2,x3时简单的加法运算 y=x1+x2+x3
%训练个数 训练需要的时间(秒) 误差 相关系数
%100 0.0028 9.3469 0.7711
%500 0.05 7.38 0.8
%1000 0.17 4.5889 0.8618
%10000 4.1250 0.006051 0.9997
%20000 8.98 9.98041e-05 0.9999
%50000 33.24 9.97801e-05 0.9999
%60000
%平方后相加运算 y=x1的平方+x2的平方+x3的平方
%训练个数 训练需要的时间(秒) 误差 相关系数
%100 0.002 3212 0.72033
%500 0.04 2516 0.5748
%1000 0.16 2885 0.62
%10000 12.8 1150 0.7964
%20000 41 376 0.9199
%50000 159 4.90 0.998527
%60000 503 0.92 0.999717
%结论:随着训练SVR模型时使用的数据量变大,训练的效果越好。通过误差变小,相关系数变大来体现。

%%clean work
close all;%关闭所有figure窗口
clear;%清空变量
clc;%清空命令
format compact;%空格紧凑
%生成对模型进行训练的数据
%这个模型为y=f(x1,x2,x3),表示此模型有3个输入变量x1,x2,x3,输出变量有1个,y。
%x1 = (0:0.001:10)’; x2 = (20:0.001:30)’; x3 = (50:0.001:60)’;
x1=randi(10,10000,1); x2=randi(10,10000,1); x3=randi(10,10000,1); %使用1到10之间的随机数进行训练
y = x1.^2 + x2.^2 +x3.^2;
%y = x1 + x2 +x3;
%建立回归模型,也就是对模型进行训练
%x是该模型的输入矢量,x中每行有3个数据,分别是x1,x2,x3,y的每个矢量有1个数据
x(:,1)=x1;x(:,2)=x2;x(:,3)=x3;
fprintf(‘Start SVR train,please waiting …’);
tic;%记录SVR模型训练的时间
model = libsvmtrain(y,x,’-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01’);
toc
%利用建立的模型看其在训练集上的回归效果,也就是使用已经训练后的SVR模型,输入训练时使用的输入数据,预测输出结果
%下面libsvmpredict函数的第一个参数无所谓,但是具有和输出变量一样的列数和行数
%如果设置为训练模型时使用过的输出变量,那么在预测时,
%会计算预测的输出结果值和原始的输出结果值之间的误差mse和相关系数prob
[py,mse,prob] = libsvmpredict(y,x,model,’-b 0’);
%简单的加法运算
%训练个数 训练需要的时间(秒) 误差 相关系数
%100 0.0028 9.3469 0.7711
%500 0.05 7.38 0.8
%1000 0.17 4.5889 0.8618
%10000 4.1250 0.006051 0.9997
%20000 8.98 9.98041e-05 0.9999
%50000 33.24 9.97801e-05 0.9999
%60000
%平方后相加运算
%训练个数 训练需要的时间(秒) 误差
%100 0.002 3212 0.72033
%500 0.04 2516 0.5748
%1000 0.16 2885 0.62
%10000 12.8 1150 0.7964
%20000 41 376 0.9199
%50000 159 4.90 0.998527
%60000 503 0.92 0.999717
%结论:随着训练SVR模型时使用的数据量变大,训练的效果越好。通过误差变小,相关系数变大来体现。
figure;%建立一个窗口
plot(y,‘o’);%原始数据以o这种形式标记
hold on;%保持当前图像不刷新
plot(py,‘r*’);%回归数据以红色的*标记
legend(‘原始数据:训练SVR模型时,使用的输出变量’,‘回归数据:使用训练好的SVR模型,对训练时使用的输入变量进行预测’);%设置图例线条
grid on;%画图的时候添加网格线

%进行预测
testx1 = [8.5;3.6;1.5];testx2 = [2.1;2.6;5.8];testx3 = [3.2;5.5;7.8];
display(‘真实数据’);%控制台输出
testy = testx1.^2 + testx2.^2 + testx3.^2
%testy = testx1 + testx2 + testx3
%下面libsvmpredict函数的第一个参数和第二个参数设置为相同,
%就是收入给已经训练好的模型的输入参数
testx(:,1)=testx1;testx(:,2)=testx2;testx(:,3)=testx3;
[ptesty,tmse,prob2] = libsvmpredict(testy,testx,model,’-b 0’);
display(‘预测数据’);
ptesty

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142078.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址

    通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址
         由于SILVERLIGHT是基于纯客户端的机制实现的,想在SL中获取客户端计算机信息暂时还没有效的解决方案。
    一般都是基于WCF、WebService等在服务端获取发送请求机器的信息,然后再返回客户端,该方法可以实现;
    同时可以在

    2022年10月9日
    0
  • navcat 激活码(JetBrains全家桶)

    (navcat 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWNlbnNlSW…

    2022年3月20日
    54
  • linux 入门学习 退出vi编辑器「建议收藏」

    linux 入门学习 退出vi编辑器「建议收藏」转载自:http://blog.csdn.net/u010648555/article/details/50676647初学Linux的时候,在使用vi操作时候,有时候可能进入的是一个文件夹,这样子在退出的时候很不好操作!下面总结一些vi退出命令,学习!进入编辑模式,按o进行编辑编辑结束,按ESC键跳到命令模式,然后输入退出命令::w保存文件但不退出vi编辑:…

    2022年9月1日
    2
  • 数组—进制转换(查表法)

    数组—进制转换(查表法)

    2021年8月25日
    61
  • siamfc++代码_asic芯片设计

    siamfc++代码_asic芯片设计SiamFC论文解读及代码实现摘要:传统上,任意目标跟踪的问题是通过专门在线学习目标外观的模型来解决的,使用视频本身作为唯一的训练数据。尽管这些方法取得了成功,但他们的纯在线方法固有地限制了他们可以学习的模型的丰富性。最近,有人试图利用深层卷积网络的表达能力。然而,当要跟踪的目标事先未知时,需要在线执行随机梯度下降以适应网络的权重,这严重影响了系统的速度。在本文中,我们在ILSVRC15数据集上为视频中的目标检测配备了一个基本的跟踪算法和一个新的端到端训练的孪生神经网络。我们的跟踪器以超过实时的帧速率运

    2022年10月1日
    0
  • 自定义标题样式_随笔有哪些题目

    自定义标题样式_随笔有哪些题目第一步:利用图标工具(有很多)制作图标文件(favicon.ico)上传到网站所在的服务器的根目录下,这个文件必须是16*16大小的图标文件。第二步:在之间添加下面的语句:1根据亲测,在IE

    2022年8月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号