使用libsvm进行回归预测
2016-09-10 10:48
316 查看
如何使用libsvm进行回归预测
http://www.matlabsky.com/thread-12390-1-1.html
(出处: MATLAB技术论坛)
强烈建议您看这个之前先好好看看这个:
如何使用libsvm进行分类
http://www.matlabsky.com/thread-12379-1-1.html
这里将这个帖子记为(帖子*)
其实我个人感觉分类和回归本质一样的,分类搞清楚了的话,回归也就应该会的了。但有好多朋友对于使用libsvm进行分类会了,但使用libsvm进行回归就行不明白,我也搞不懂,道理都一样的啊,我最开始接触libsvm的时候就是弄明白分类然后回归自然而然就明白了的啊!
好吧,不管了,还是在这里把使用libsvm进行回归预测也说说吧~。
回归和分类本质都是一样,就是有一个输入(属性矩阵或者自变量)然后有输出(分类是分类标签,回归是因变量),也就是相当于一个函数:
Y = f(x)利用训练集合已知的x,y来建立回归模型model,然后用这个model去预测。
这里面的x就相当于帖子*中的那个属性矩阵data,y相当于帖子*中的label,这样理解就很简单了。我们看下面一个简单的利用libsvm进行回归的例子:
%% HowToRegressUsingLibsvm
% by faruto @ faruto's Studio~
% http://blog.sina.com.cn/faruto
% Email:faruto@163.com
% http://www. href="http://www.matlabsky.com/" target=_blank>MATLABsky.com
% http://www.mfun.la
% http://video.ourmatlab.com
% last modified by 2010.12.28
%% a litte clean work
tic;
close all;
clear;
clc;
format compact;
%%
% 生成待回归的数据
x = (-1:0.1:1)';
y = -x.^2;
% 建模回归模型
model = svmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');
% 利用建立的模型看其在训练集合上的回归效果
[py,mse] = svmpredict(y,x,model);
figure;
plot(x,y,'o');
hold on;
plot(x,py,'r*');
legend('原始数据','回归数据');
grid on;
% 进行预测
testx = 1.1;
display('真实数据')
testy = -testx.^2
[ptesty,tmse] = svmpredict(testy,testx,model);
display('预测数据');
ptesty
%%
toc
复制代码
运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/2a3a386f99645cc8debd17587acdee76.jpg)
回归.jpg (55.06 KB, 下载次数: 866)
下载附件 保存到相册
2010-12-28 10:14 上传
Mean squared error = 9.52768e-005 (regression)
Squared correlation coefficient = 0.999184 (regression)
真实数据
testy =
-1.2100
Mean squared error = 0.0102555 (regression)
Squared correlation coefficient = -1.#IND (regression)
预测数据
ptesty =
-1.1087
Elapsed time is 0.133552 seconds.
复制代码
上面的代码是对于二次函数y = x^2在[-1,1]上进行回归,并对于testx=1.1进行预测,这里面由于我们知道真实的因变量testy = -1.21,按道理说做预测是不知道待预测的目标量是什么的,否则还预测什么?这里就有好多朋友产生疑惑,说如果不知道待预测的目标量是什么怎么办?答曰:那就随便写一个就行啊!然后又有的朋友会说,那这样生成的回归指标(mse均方根误差,和平方回归系数很不理想啊),操~本身真实的因变量都不知道,这些参考指标在真实的因变量不知道的情况下是没有参考价值的。以前我看到这样的问题,真的抓狂,就不能自己动脑子稍微想一下吗!?
上面使用的参数说明:
-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)
-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)
-c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
-p p:设置e -SVR 中损失函数p的值(默认0.1)
更多关于libsvm 参数的说明请看
libsvm 参数说明【中英文双语版本】
http://www.matlabsky.com/thread-12380-1-1.html
如果对于标签设置问题您还没有搞懂可以再看看这个:
【转】Matlab中使用libsvm进行分类预测时的标签问题再次说明
http://www.matlabsky.com/thread-12396-1-1.html
更多关于SVM的东西请看:
关于SVM的那点破事[长期更新整理 by faruto]
http://www.matlabsky.com/thread-10966-1-1.html
如何使用libsvm进行回归预测
http://www.matlabsky.com/thread-12390-1-1.html
(出处: MATLAB技术论坛)
强烈建议您看这个之前先好好看看这个:
如何使用libsvm进行分类
http://www.matlabsky.com/thread-12379-1-1.html
这里将这个帖子记为(帖子*)
其实我个人感觉分类和回归本质一样的,分类搞清楚了的话,回归也就应该会的了。但有好多朋友对于使用libsvm进行分类会了,但使用libsvm进行回归就行不明白,我也搞不懂,道理都一样的啊,我最开始接触libsvm的时候就是弄明白分类然后回归自然而然就明白了的啊!
好吧,不管了,还是在这里把使用libsvm进行回归预测也说说吧~。
回归和分类本质都是一样,就是有一个输入(属性矩阵或者自变量)然后有输出(分类是分类标签,回归是因变量),也就是相当于一个函数:
Y = f(x)利用训练集合已知的x,y来建立回归模型model,然后用这个model去预测。
这里面的x就相当于帖子*中的那个属性矩阵data,y相当于帖子*中的label,这样理解就很简单了。我们看下面一个简单的利用libsvm进行回归的例子:
%% HowToRegressUsingLibsvm
% by faruto @ faruto's Studio~
% http://blog.sina.com.cn/faruto
% Email:faruto@163.com
% http://www. href="http://www.matlabsky.com/" target=_blank>MATLABsky.com
% http://www.mfun.la
% http://video.ourmatlab.com
% last modified by 2010.12.28
%% a litte clean work
tic;
close all;
clear;
clc;
format compact;
%%
% 生成待回归的数据
x = (-1:0.1:1)';
y = -x.^2;
% 建模回归模型
model = svmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');
% 利用建立的模型看其在训练集合上的回归效果
[py,mse] = svmpredict(y,x,model);
figure;
plot(x,y,'o');
hold on;
plot(x,py,'r*');
legend('原始数据','回归数据');
grid on;
% 进行预测
testx = 1.1;
display('真实数据')
testy = -testx.^2
[ptesty,tmse] = svmpredict(testy,testx,model);
display('预测数据');
ptesty
%%
toc
复制代码
运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/17/2a3a386f99645cc8debd17587acdee76.jpg)
回归.jpg (55.06 KB, 下载次数: 866)
下载附件 保存到相册
2010-12-28 10:14 上传
Mean squared error = 9.52768e-005 (regression)
Squared correlation coefficient = 0.999184 (regression)
真实数据
testy =
-1.2100
Mean squared error = 0.0102555 (regression)
Squared correlation coefficient = -1.#IND (regression)
预测数据
ptesty =
-1.1087
Elapsed time is 0.133552 seconds.
复制代码
上面的代码是对于二次函数y = x^2在[-1,1]上进行回归,并对于testx=1.1进行预测,这里面由于我们知道真实的因变量testy = -1.21,按道理说做预测是不知道待预测的目标量是什么的,否则还预测什么?这里就有好多朋友产生疑惑,说如果不知道待预测的目标量是什么怎么办?答曰:那就随便写一个就行啊!然后又有的朋友会说,那这样生成的回归指标(mse均方根误差,和平方回归系数很不理想啊),操~本身真实的因变量都不知道,这些参考指标在真实的因变量不知道的情况下是没有参考价值的。以前我看到这样的问题,真的抓狂,就不能自己动脑子稍微想一下吗!?
上面使用的参数说明:
-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)
-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)
-c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
-p p:设置e -SVR 中损失函数p的值(默认0.1)
更多关于libsvm 参数的说明请看
libsvm 参数说明【中英文双语版本】
http://www.matlabsky.com/thread-12380-1-1.html
如果对于标签设置问题您还没有搞懂可以再看看这个:
【转】Matlab中使用libsvm进行分类预测时的标签问题再次说明
http://www.matlabsky.com/thread-12396-1-1.html
更多关于SVM的东西请看:
关于SVM的那点破事[长期更新整理 by faruto]
http://www.matlabsky.com/thread-10966-1-1.html
相关文章推荐
- 使用skflow内置的LR,DNN,Scikit-learn中的集成回归模型对“美国波士顿房价”进行预测
- K近邻回归模型对Boston房价进行预测,同时对性能进行评估(1.使用普通的算术平均法2.考虑距离差异进行加权平均)
- 使用三种继承回归模型对美国波士顿房价训练数据进行学习,并对测试数据进行预测
- 简单数据预测—使用Python训练回归模型并进行预测(转自蓝鲸网站分析博客)
- 使用三种不同核函数配置的支持向量机(回归)模型对美国波士顿地区房价进行预测
- 使用Spark MLlib的逻辑回归(LogisticRegression)进行用户分类预测识别
- 使用两种不同配置的K近邻回归模型对美国波士顿房价数据进行回归预测
- libsvm进行回归预测
- 使用回归树对美国波士顿房价训练数据进行学习,并对测试数据进行预测
- libsvm用于回归预测的使用步骤总结
- Tensorflow案例分析(1)—— 使用逻辑回归进行泰坦尼克号预测
- 使用vgg16模型进行图片预测
- 使用libsvm进行分类之python和java版本
- Windows下使用libsvm中的grid.py和easy.py进行参数调优
- libsvm-3.20初步使用easy.py进行分类
- libsvm如何调用svm.cpp进行训练和预测的具体过程
- 使用逻辑回归进行MNIST分类(Classifying MNIST using Logistic Regressing)
- 安装AIC准则使用前进法后退法和逐步回归法进行变量选择的r语言代码
- 【人工智能】软件使用--weka如何进行数据预测