libsvm使用matlab训练为空,新人急:使用libsvm中的函数=svmpredict预测输出为空。
上次的帖子没有人回复,我顶了一下,结果变成“已答复”了。所以重新发一遍。
【问题来源】本论坛出版的《MATLAB神经网络30个案例分析》中的第12个案例 SVM神经网络的数据分类预测-葡萄酒种类识别
【程序代码】%使用了林教授最新版SVM工具箱,且已正确安装和编译。程序代码我自己未作什么改动。
close all;
clear;
clc;
format compact;
% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量
load chapter12_wine.mat;
% 画出测试数据的box可视化图
figure;
boxplot(wine,'orientation','horizontal','labels',categories);
title('wine数据的box可视化图','FontSize',12);
xlabel('属性值','FontSize',12);
grid on;
% 画出测试数据的分维可视化图
figure
subplot(3,5,1);
hold on
for run = 1:178
plot(run,wine_labels(run),'*');
end
xlabel('样本','FontSize',10);
ylabel('类别标签','FontSize',10);
title('class','FontSize',10);
for run = 2:14
subplot(3,5,run);
hold on;
str = ['attrib ',num2str(run-1)];
for i = 1:178
plot(i,wine(i,run-1),'*');
end
xlabel('样本','FontSize',10);
ylabel('属性值','FontSize',10);
title(str,'FontSize',10);
end
% 选定训练集和测试集
% 将第一类的1-30,第二类的60-95,第三类的131-153做为训练集
train_wine = [wine(1:30,:);wine(60:95,:);wine(131:153,:)];
% 相应的训练集的标签也要分离出来
train_wine_labels = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)];
% 将第一类的31-59,第二类的96-130,第三类的154-178做为测试集
test_wine = [wine(31:59,:);wine(96:130,:);wine(154:178,:)];
% 相应的测试集的标签也要分离出来
test_wine_labels = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)];
[mtrain,ntrain] = size(train_wine);
[mtest,ntest] = size(test_wine);
dataset = [train_wine;test_wine];
% mapminmax为MATLAB自带的归一化函数
[dataset_scale,ps] = mapminmax(dataset',0,1);
dataset_scale = dataset_scale';
train_wine = dataset_scale(1:mtrain,:);
test_wine = dataset_scale( (mtrain+1):(mtrain+mtest),: );
%SVM网络训练
model = svmtrain(train_wine_labels, train_wine, '-c 2 -g 1');
%SVM网络预测
%此句输入出现问题,输出为空。图可以正常输出,只是predict_label, accuracy输出为空。
[predict_label, accuracy] = svmpredict(test_wine_labels, test_wine, model);
% 测试集的实际分类和预测分类图% 通过图可以看出只有一个测试样本是被错分的figure;hold on;plot(test_wine_labels,'o');
plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);
ylabel('类别标签','FontSize',12);legend('实际测试集分类','预测测试集分类');
title('测试集的实际分类和预测分类图','FontSize',12);grid on;
【运行出现的问题】
Usage: [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
[predicted_label] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
Parameters:
model: SVM model structure from svmtrain.
libsvm_options:
-b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); one-class SVM not supported yet
-q : quiet mode (no outputs)
Returns:
predicted_label: SVM prediction output vector.
accuracy: a vector with accuracy, mean squared error, squared correlation coefficient.
prob_estimates: If selected, probability estimate vector.
>> predict_label
predict_label =
[]
>> accuracy
accuracy =
[]
我希望看到预测和精度的输出结果,但不知为什么输出为空。
libsvm使用matlab训练为空,新人急:使用libsvm中的函数=svmpredict预测输出为空。相关推荐
- mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
1.判断变量 复制代码代码如下: read -p "input a word :" word if [ ! -n "$word" ] ;then echo & ...
- LIBSVM在Matlab下的使用
支持向量机(SVM,Support Vector Machine)是一种基于统计学习理论的模式识别方法,在解决小样本.高维度及非线性的分类问题中应用非常广泛. LIBSVM是一个由台湾大学林智仁(Li ...
- LIBSVM在Matlab下的使用和LIBSVM的matlab软件下README全文翻译
1.简介 我们每次用matlab编写SVM模型做预测和分类时,就会需要用到这个工具包,当然现在新版本有matlab自带的工具APP,可以完成支持向量机(SVM),不需要写代码,因此就不需要安装工具包. ...
- LibSVM 在matlab中的使用
搞了一天,看了很多资料,终于搞好了matlab中调用大牛写好的svm库,将结果告诉大家避免以后走弯路. 1. 参考网站: libsvm库下载:http://www.csie.ntu.edu.tw/~c ...
- LIBSVM在MATLAB中的使用及SVM最优参数选取示例代码
1. 参考网站: LIBSVM 库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/ https://www.csie.ntu.edu.tw/~cjlin/lib ...
- matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题
在科研中需要用到支持向量机(Support Vector Machines, SVM)来进行分类,而目前比较成熟的用于实现SVM的软件包则首推LibSVM.LibSVM目前的版本已经能直接在MATLA ...
- matlab的libsvm程序,matlab中安装Libsvm 步骤
源自:http://blog.sina.com.cn/s/blog_4fe347e60101h5uz.html 一.下载libsvm 在libsvm的网站上下载 libsvm-3.12.zip文件,解 ...
- 台湾大学林教授libsvm在matlab的安装
台湾大学林教授libsvm在matlab的安装 下载libsvm文件 将整个libsvm文件复制到matlab的toolbox中 在matlab中设置路径 运行与纠错(mex -setup) 参考: ...
- libsvm在matlab中使用的常见错误及libsvm的使用
以下是libsvm的使用及常见错误 1.Error using svmtrain (line 233) Y must be a vector or a character array. 首先,需要看你 ...
最新文章
- Reids实战(7)数据类型五sorted sets
- JVM_03 运行时数据区 [ 方法区]
- 1.初次运行git前的配置
- 数据库-多表查询-笛卡尔积
- 前端学习(1338):mongoDB删除文档
- 幸运数字(洛谷-P3292)
- php %3c%3c%3cxml 报错,Web for Pentester XXE解析
- 痛失 3000 万美元比特币现金,只因一张 SIM 卡?
- E: Sub-process /usr/bin/dpkg returned an error code (1)
- LLVM每日谈之三 如何创建一个LLVM工程
- OpenMAX IL介绍与其体系
- matlab 编写雷达波形,雷达信号处理+Matlab程序
- Python 数据挖掘(四) pandas模块 简单使用
- 高等数学(第七版)同济大学 总习题四(前半部分) 个人解答
- linux取得redis数据库中hash类型的所有feild或者所有value
- Linux 查看服务器cpu信息常用命令大全
- 论文写作:如何选研究题目?
- 采用bitly压缩url
- 微信小程序 - 日期(起止)选择器组件
- Tiled的qbs方式编译记录