MAT之SVM/BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测

目录

输出结果

代码设计


输出结果

代码设计

load concrete_data.mat n = randperm(size(attributes,2));p_train = attributes(:,n(1:80))';
t_train = strength(:,n(1:80))';p_test = attributes(:,n(81:end))';
t_test = strength(:,n(81:end))';[pn_train,inputps] = mapminmax(p_train');
pn_train = pn_train';
pn_test = mapminmax('apply',p_test',inputps);
pn_test = pn_test';[tn_train,outputps] = mapminmax(t_train');
tn_train = tn_train';
tn_test = mapminmax('apply',t_test',outputps);
tn_test = tn_test';[c,g] = meshgrid(-10:0.5:10,-10:0.5:10);
[m,n] = size(c);
cg = zeros(m,n);
eps = 10^(-4);
v = 5;
bestc = 0;
bestg = 0;
error = Inf;
for i = 1:mfor j = 1:ncmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j) ),' -s 3 -p 0.1'];cg(i,j) = svmtrain(tn_train,pn_train,cmd);if cg(i,j) < errorerror = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);endif abs(cg(i,j) - error) <= eps && bestc > 2^c(i,j)error = cg(i,j);bestc = 2^c(i,j);bestg = 2^g(i,j);endend
endcmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -p 0.01'];
model = svmtrain(tn_train,pn_train,cmd);[Predict_1,error_1] = svmpredict(tn_train,pn_train,model);
[Predict_2,error_2] = svmpredict(tn_test,pn_test,model);predict_1 = mapminmax('reverse',Predict_1,outputps);
predict_2 = mapminmax('reverse',Predict_2,outputps);result_1 = [t_train predict_1];
result_2 = [t_test predict_2];figure(1)
plot(1:length(t_train),t_train,'r-*',1:length(t_train),predict_1,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('耐压强度')
string_1 = {'训练集预测结果对比(SVM之SVR)—Jason niu';['mse = ' num2str(error_1(2)) ' R^2 = ' num2str(error_1(3))]};
title(string_1)
figure(2)
plot(1:length(t_test),t_test,'r-*',1:length(t_test),predict_2,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('耐压强度')
string_2 = {'SVM之SVR测试集预测结果对比(SVM之SVR)—Jason niu';['mse = ' num2str(error_2(2)) ' R^2 = ' num2str(error_2(3))]};
title(string_2)%BP神经网络
pn_train = pn_train';
tn_train = tn_train';
pn_test = pn_test';
tn_test = tn_test';net = newff(pn_train,tn_train,10);net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.show = 10;
net.trainParam.lr = 0.1;net = train(net,pn_train,tn_train);tn_sim = sim(net,pn_test);E = mse(tn_sim - tn_test);N = size(t_test,1);
R2=(N*sum(tn_sim.*tn_test)-sum(tn_sim)*sum(tn_test))^2/((N*sum((tn_sim).^2)-(sum(tn_sim))^2)*(N*sum((tn_test).^2)-(sum(tn_test))^2)); t_sim = mapminmax('reverse',tn_sim,outputps);figure(3)
plot(1:length(t_test),t_test,'r-*',1:length(t_test),t_sim,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('耐压强度')
string_3 = {'测试集预测结果对比(BP神经网络)—Jason niu';['mse = ' num2str(E) ' R^2 = ' num2str(R2)]};
title(string_3)

相关文章
SVM—PK—BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测

MAT之SVM/BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测相关推荐

  1. MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解

    MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解 目录 输出结果 实现代码 输出结果 %SA:T2法利用Matlab自带的SA工具箱optimt ...

  2. MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解

    MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解 目录 输出结果 实现代码 输出结果 %SA:T2法利用Matlab自带的SA工具箱optimt ...

  3. 机器学习的几种方法(knn,逻辑回归,SVM,决策树,随机森林,极限随机树,集成学习,Adaboost,GBDT)

     一.判别模式与生成模型基础知识 举例:要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率. 举例:利用生成模型是根 ...

  4. bp神经网络预测模型原理,BP神经网络预测模型

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...

  5. BP算法与累积BP算法

    西瓜书5.5:试编程实现BP算法与累积BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并进行比较. BP算法matlab实现 clearx = xlsread('watermelon ...

  6. 基于BP神经网络实现气凝胶加气混凝土抗压强度预测(附代码)

    目录 前言 1. 背景 1.1 什么是加气混凝土 1.2 传统AAC抗压强度测试方法 1.3 为什么选择BP神经网络 2. MATLAB算法实现 2.1 训练集数据编辑 2.2 数据导入与整理 2.3 ...

  7. MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测

    MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测 目录 输出结果 代码设计 输出结果 代码设计 load BreastTissue_data.m ...

  8. trainlm算法c语言,粒子群优化的BP神经网络模型对C、Mn两种元素收得率的预测

    粒子群优化的BP神经网络模型对C.Mn两种元素收得率的预测 来源:用户上传 作者: 摘 要:本文首先对数据进行处理,利用收得率公式求出历史收得率:并利用已知的影响元素收得率的主要影响因素结合BP神经网 ...

  9. 谈谈SVM和SVR的区别

    支持向量机(SVM)本身是针对二分类问题提出的,而SVR(支持向量回归)是SVM(支持向量机)中的一个重要的应用分支.SVR回归与SVM分类的区别在于,SVR的样本点最终只有一类,它所寻求的最优超平面 ...

最新文章

  1. 【刷算法】LeetCode- 两数之和
  2. 使用 keras 训练大规模数据
  3. PageOffice实现js执行在线编辑时Word文档中的宏命令
  4. 对Python参数类型详解以及学习中遇到的坑
  5. C语言再学习-- assert 断言宏
  6. 神经网络调参技巧:warmup策略
  7. scATAC-seq建库原理,质控方法和新R包Signac的使用
  8. 程序员面试题之从字节截断谈起
  9. 合成人声、人脸替换等深度合成信息内容须进行显著标识
  10. 我的Java开发学习之旅------心得总结:Java性能优化技巧集锦
  11. php smarty程序设计,Smarty程序设计-动态文件操作
  12. 前馈-反馈控制系统设计(过程控制课程设计matlab/simulink)
  13. java visual foxpro_从Java访问Visual FoxPro数据库
  14. 探索图片透明度叠加方式
  15. C语言—各种数据类型间的混合运算
  16. 超声波模块收发电路原理图
  17. Linux中MISC驱动简介及其简单使用
  18. 北航计算机学院编译技术,北航编译技术在线作业一二三
  19. 算法的时间复杂度的计算
  20. 我就喜欢那种认认真真和我吵架的

热门文章

  1. /proc/irq和/proc/interrupts详解
  2. [转载]ASP.NET Core文件上传与下载(多种上传方式)
  3. 从目录中查找最大和最小的文件(不包括子目录)
  4. Java 动态代理机制分析及扩展
  5. 一些杂感杂想(一)谈谈加班、团队
  6. 我国大陆居民身份证Java验证
  7. 从一个页面跳转到用swiper写的全屏滚动页面的指定位置
  8. hdu 4850 字符串构造---欧拉回路构造序列 递归+非递归实现
  9. Docker进阶(制作镜像,共享卷,网络通信,私有仓库)
  10. python脚本在命令行中传递参数(附字符查找小案例)