上次的帖子没有人回复,我顶了一下,结果变成“已答复”了。所以重新发一遍。

【问题来源】本论坛出版的《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预测输出为空。相关推荐

  1. mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法

    1.判断变量 复制代码代码如下: read -p "input a word :" word if  [ ! -n "$word" ] ;then echo & ...

  2. LIBSVM在Matlab下的使用

    支持向量机(SVM,Support Vector Machine)是一种基于统计学习理论的模式识别方法,在解决小样本.高维度及非线性的分类问题中应用非常广泛. LIBSVM是一个由台湾大学林智仁(Li ...

  3. LIBSVM在Matlab下的使用和LIBSVM的matlab软件下README全文翻译

    1.简介 我们每次用matlab编写SVM模型做预测和分类时,就会需要用到这个工具包,当然现在新版本有matlab自带的工具APP,可以完成支持向量机(SVM),不需要写代码,因此就不需要安装工具包. ...

  4. LibSVM 在matlab中的使用

    搞了一天,看了很多资料,终于搞好了matlab中调用大牛写好的svm库,将结果告诉大家避免以后走弯路. 1. 参考网站: libsvm库下载:http://www.csie.ntu.edu.tw/~c ...

  5. LIBSVM在MATLAB中的使用及SVM最优参数选取示例代码

    1. 参考网站: LIBSVM 库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/ https://www.csie.ntu.edu.tw/~cjlin/lib ...

  6. matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题

    在科研中需要用到支持向量机(Support Vector Machines, SVM)来进行分类,而目前比较成熟的用于实现SVM的软件包则首推LibSVM.LibSVM目前的版本已经能直接在MATLA ...

  7. matlab的libsvm程序,matlab中安装Libsvm 步骤

    源自:http://blog.sina.com.cn/s/blog_4fe347e60101h5uz.html 一.下载libsvm 在libsvm的网站上下载 libsvm-3.12.zip文件,解 ...

  8. 台湾大学林教授libsvm在matlab的安装

    台湾大学林教授libsvm在matlab的安装 下载libsvm文件 将整个libsvm文件复制到matlab的toolbox中 在matlab中设置路径 运行与纠错(mex -setup) 参考: ...

  9. libsvm在matlab中使用的常见错误及libsvm的使用

    以下是libsvm的使用及常见错误 1.Error using svmtrain (line 233) Y must be a vector or a character array. 首先,需要看你 ...

最新文章

  1. Reids实战(7)数据类型五sorted sets
  2. JVM_03 运行时数据区 [ 方法区]
  3. 1.初次运行git前的配置
  4. 数据库-多表查询-笛卡尔积
  5. 前端学习(1338):mongoDB删除文档
  6. 幸运数字(洛谷-P3292)
  7. php %3c%3c%3cxml 报错,Web for Pentester XXE解析
  8. 痛失 3000 万美元比特币现金,只因一张 SIM 卡?
  9. E: Sub-process /usr/bin/dpkg returned an error code (1)
  10. LLVM每日谈之三 如何创建一个LLVM工程
  11. OpenMAX IL介绍与其体系
  12. matlab 编写雷达波形,雷达信号处理+Matlab程序
  13. Python 数据挖掘(四) pandas模块 简单使用
  14. 高等数学(第七版)同济大学 总习题四(前半部分) 个人解答
  15. linux取得redis数据库中hash类型的所有feild或者所有value
  16. Linux 查看服务器cpu信息常用命令大全
  17. 论文写作:如何选研究题目?
  18. 采用bitly压缩url
  19. 微信小程序 - 日期(起止)选择器组件
  20. Tiled的qbs方式编译记录

热门文章

  1. Python 语法基础
  2. WICC 2021最新议程曝光 边缘计算将迎来突破性的科研分享
  3. BUCK电路硬件在环测试
  4. 机器学习、智能算法、视觉识别,你想要的AI热点都在这
  5. 东莞理工学院计算机专业实力如何,2019东莞理工学院专业排名
  6. Windows7如何隐藏文件与查看隐藏文件
  7. 智遥工作流开发ECR(工程变更申请单)流程
  8. c语言:求某年某月的天数(2种方法)
  9. 关于计算机音乐的文章,电脑音乐制作论文范文
  10. 污水监控管理解决方案