matlab解决svr代码
多元线性回归和BP神经网络及决策向量机之间的比较,个人理解:
多元线性回归:就是多个属性的线性组合,在组合时,通过不断调节每个属性的权重来使多元线性回归函数更多的适用于多个样本。
BP神经网络:通过使用最快速下降法,通过反向传播来不断调整网络中的权值和阈值,使网络的误差平方和最小。 决策向量机:它仍是对每个样本操作,使得所有样本距离最终生成的拟合曲线的间隔最小化。 算法比较:
pmm1BP目标函数: J?(?j)22j?1j
?yd权值调整:
k?1?wij????Jk?1?wij决策向量机目标函数:min1/2w^2
支持向量机(Support vector machines,SVM)与神经网络类似,都是学习型的机制,但与神经网络不同的是SVM使用的是数学方法和优化技术。
学习效率的比较:
导入数据: File->import data
参数优化常用方法:
[train_pca,test_pca] = pcaForSVM(train_data,test_data,97);//主元分析
[bestCVmse,bestc,bestg,ga_option]=gaSVMcgForRegress(train_label,train_pca); [bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data) cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -p 0.01'];
train_label=data(1:50,1); train_data=data(1:50,2:14);
model=svmtrain(train_label,train_data,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01'); test_label=data(51:100,1); test_data=data(51:100,2:14);
[predict_label,mse,dec_value]=svmpredict(test_label,test_data,model); [bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data) cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -p 0.01'];
代码整理:
Part1:从核函数的角度出发,当选取不同核函数类型时,模型的效率是否有所提高 1.核函数为RBF核函数时:
优化前:
train_label=data(1:50,1); train_data=data(1:50,2:14);
model=svmtrain(train_label,train_data,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01'); [predict_label,mse,dec_value]=svmpredict(train_label,train_data,model);
%上一行利用自身的值和预测值进行比较,求得模型实际结果和预测结果的均方值 test_label=data(51:100,1); test_data=data(51:100,2:14);
[predict_label,mse,dec_value]=svmpredict(test_label,test_data,model);
优化后:
train_label=data(1:50,1); train_data=data(1:50,2:14);
[bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data)%优化方法暂定为网格寻优 cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 –t 2 -p 0.01']; model=svmtrain(train_label,train_data,cmd);
[ptrain,mse,dec_value]=svmpredict(train_label,train_data,model);
figure;%画图比较预测值和实际值 subplot(2,1,1);
plot(train_label,'-o'); hold on;
plot(ptrain,'r-s'); grid on;
legend('original','predict');
title('Train Set Regression Predict by SVM');
2.核函数为多项式核函数时 train_label=data(1:50,1); train_data=data(1:50,2:14);
[bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data); cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -t 1 -p 0.01']; model=svmtrain(train_label,train_data,cmd);
[ptrain,mse]=svmpredict(train_label,train_data,model); figure;%画图比较预测值和实际值
subplot(2,1,1);
plot(train_label,'-o'); hold on;
plot(ptrain,'r-s'); grid on;
legend('original','predict');
title('Train Set Regression Predict by SVM');
Mean squared error = 14505.6 (regression)
Squared correlation coefficient = 0.349393 (regression)
3.核函数为线性乘积0 -- linear: u'*v train_label=data(1:50,1); train_data=data(1:50,2:14);
[bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data); cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -t 0 -p 0.01']; model=svmtrain(train_label,train_data,cmd);
[ptrain,mse]=svmpredict(train_label,train_data,model); figure;%画图比较预测值和实际值 subplot(2,1,1);
plot(train_label,'-o'); hold on;
plot(ptrain,'r-s'); grid on;
legend('original','predict');
title('Train Set Regression Predict by SVM');
Mean squared error = 14537 (regression)
Squared correlation coefficient = 0.389757 (regression)
4.核函数为sigmoid: tanh(gamma*u'*v + coef0) 神经元的非线性作用函数
train_label=data(1:50,1); train_data=data(1:50,2:14);
[bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data); cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -t 3 -p 0.01']; model=svmtrain(train_label,train_data,cmd);
[ptrain,mse]=svmpredict(train_label,train_data,model); figure;%画图比较预测值和实际值 subplot(2,1,1);
plot(train_label,'-o'); hold on;
plot(ptrain,'r-s'); grid on;
legend('original','predict');
title('Train Set Regression Predict by SVM');
Mean squared error = 24326.5 (regression)
Squared correlation coefficient = 0.271859 (regression) 下图为江良学长的测试成本-因素结果
注意:第一部分在建模时仅采用的是前50组数据生成的测试效率-因素模型,当选取的训练集越多(接近100)时,他的效果是越差的,举例说明如下:核函数为RBF
Mean squared error = 20424.8 (regression)
Squared correlation coefficient = 0.527831 (regression)
选取的样本越多,得到的MSE越大(虽然mse增加,但对样本的预测效果肯定会更好,因为随着样本数增加,学习能力肯定提高),而相关系数反而有所提高(接近于1最佳); 问题提出:为什么bestmse =2.3162e+004与实际训练出来的Mean squared error = 20424.8 (regression)相距甚选????
Part2:从参数优化方法选取不同上比较那种参数选取更优 此比较基于RBF核函数而言 1.基于网格寻优方法 代码:
train_label=data(1:50,1); train_data=data(1:50,2:14);
[bestmse,bestc,bestg] = SVMcgForRegress(train_label,train_data)%优化方法暂定为网格寻优 cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 –t 2 -p 0.01']; model=svmtrain(train_label,train_data,cmd);
[ptrain,mse,dec_value]=svmpredict(train_label,train_data,model); 结果: bestmse =
1.5542e+004 bestc = 27.8576 bestg = 0.0039
Mean squared error = 14107.4 (regression)
Squared correlation coefficient = 0.386814 (regression)
2.基于遗传算法寻优
…… 此处隐藏:2739字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




