%归一化后的参数解读:
%未作归一化处理数据,效果不理想
%[plabel_test,mse] = svmpredict(label_test,test_data,model);测试集的回归数据
% Mean squared error = 2.07642 (regression)
% Squared correlation coefficient = 0.034525 (regression)
% 训练集数据效果[plabel_train,mse] = svmpredict(label_train,train_data,model);
% Mean squared error = 0.377087 (regression)
% Squared correlation coefficient = 0.820613 (regression)
clc
clear
close all
load('C:\Users\dell\Desktop\tocyc4.mat');
data = TOC ;
num_train=48;
choose=randperm(length(data));
train_data=data(choose(1:num_train),2:end);
%gscatter(train_data(:,1),train_data(:,2)); 这句不懂所以没用
label_train=train_data(:,1);%和原代码有点不同 需要注意修改
%归一化
figure;
plot(label_train,'LineWidth',2);
title('取心TOC','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('取心toc含量','FontSize',12);
grid on;
% 数据预处理,将原始数据进行归一化
label_train = label_train';
% mapminmax为matlab自带的映射函数
% 对ts进行归一化
[label_trainTS,label_trainTSps] = mapminmax(label_train,0,1);
%
figure;
plot(label_trainTS,'LineWidth',2);
title('取心TOC归一化后的图像','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('归一化后的TOC含量','FontSize',12);
grid on;
% 对TS进行转置,以符合libsvm工具箱的数据格式要求
label_trainTS = label_trainTS';
% 对tsx进行归一化
train_data = train_data';
[train_dataTSX,train_dataTSXps] = mapminmax(train_data,0,1);
% 对TSX进行转置,以符合libsvm工具箱的数据格式要求
train_dataTSX = train_dataTSX';
%predict=zeros(length(test_data),1);
model=svmtrain(label_trainTS,train_dataTSX,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');%为什么是end-1 不太懂 要注意
[plabel_train,mse] = svmpredict(label_trainTS,train_dataTSX,model);
figure
plot(label_trainTS,'o');
hold on
plot(plabel_train,'r*');
title('训练集模型训练情况','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('TOC','FontSize',12);
legend('岩心实验TOC数据','回归预测TOC数据');
% figure;画图有问题,横坐标如何确定
% plot(train_data,label_train,'o');
% hold on;
% plot(train_data,plabel,'r*');
% legend('原始数据','回归数据');
% grid on;
% title('取心TOC','FontSize',12);
% xlabel('样本数','FontSize',12);
% ylabel('取心toc含量','FontSize',12);
test_data=data(choose(num_train+1:end),2:end);%测试集的样本数
label_test=test_data(:,1);
figure;
plot(label_test,'LineWidth',2);
title('测试集取心TOC','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('测试集取心toc含量','FontSize',12);
grid on;
% 数据预处理,将原始数据进行归一化
label_test = label_test';
% mapminmax为matlab自带的映射函数
% 对ts进行归一化
[label_testTS,label_testTSps] = mapminmax(label_test,0,1);
% 画出原始上证指数的每日开盘数归一化后的图像
figure;
plot(label_testTS,'LineWidth',2);
title('测试集取心TOC归一化后的图像','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('测试集归一化后的TOC含量','FontSize',12);
grid on;
% 对TS进行转置,以符合libsvm工具箱的数据格式要求
label_testTS = label_testTS';
% 对tsx进行归一化
test_data = test_data';
[test_dataTSX,test_dataTSXps] = mapminmax(test_data,0,1);
% 对TSX进行转置,以符合libsvm工具箱的数据格式要求
test_dataTSX = test_dataTSX';
[plabel_test,pmse] = svmpredict(label_testTS,test_dataTSX,model);
figure
plot(label_testTS,'o');
hold on
plot(plabel_test,'r*')
title('测试集模型训练情况','FontSize',12);
xlabel('样本数','FontSize',12);
ylabel('TOC','FontSize',12);
legend('岩心实验TOC数据','回归预测TOC数据');
svrexample.rar_SVR_回归预测_支持向量回归_支持向量机
版权申诉
159 浏览量
2022-07-15
05:26:51
上传
评论
收藏 2KB RAR 举报
林当时
- 粉丝: 97
- 资源: 1万+