labview的libsvm安装问题求助
展开全部
题主的问题一是如何使用LIBSVM工具,二是对模式识别、机器学习中的一些概念不清楚。下面以matlab版libsvm为例:
训练命令:
model = svmtrain(train_label, train_data, ['libsvm_options']);
测试命令:
[predict_label, accuracy, dec_values] = svmpredict(test_label, test_data, model);
0. “使用svm-train训练完成后,将一行数据作为测试样本,运行svm-predict。测试数据的首位label值我是随意写的,结果predict出来一个accuracy=0% (0/1),如果我修改首位label值为训练样本中的某类别编号,则accuracy=100% (1/1)。”
首先, 如果测试样本的label在训练样本里没出现过,那accuracy肯定是0. 想想这个类别之前都没训练学习过,机器怎么可能把它预测出来。
其次,用训练样本当作测试样本,这个意义不大。即使在训练样本上测试的结果是100%,这也并不说明问题,更可能的是过拟合。
1. “我想要知道单个测试样本最有可能属于哪一个类别(训练时用的是多类别分类),该如何做?”
单个样本预测的类别,就是上述测试命令中的返回值predict_label,它是一个列向量,第i个元素代表第i个测试样本的预测类别。
2. “我看见不少人在训练完成后,用另一个样本集做predict,返回一个介于0%和100%之间的accuracy值。我想这个值只能解释为测试样本中正确的类别编号所占的百分比,但这又有何意义?这个accuracy到底是什么意义?”
这个accuracy非常有意义。想想你训练了一个模型,如何评价这个模型的好坏?当然是找一组新的测试数据来进行预测,如果预测的准确率非常高,100%,那说明之前训练的模型是比较好的。当然前提是测试样本也要足够多。
-
训练命令:
model = svmtrain(train_label, train_data, ['libsvm_options']);
测试命令:
[predict_label, accuracy, dec_values] = svmpredict(test_label, test_data, model);
0. “使用svm-train训练完成后,将一行数据作为测试样本,运行svm-predict。测试数据的首位label值我是随意写的,结果predict出来一个accuracy=0% (0/1),如果我修改首位label值为训练样本中的某类别编号,则accuracy=100% (1/1)。”
首先, 如果测试样本的label在训练样本里没出现过,那accuracy肯定是0. 想想这个类别之前都没训练学习过,机器怎么可能把它预测出来。
其次,用训练样本当作测试样本,这个意义不大。即使在训练样本上测试的结果是100%,这也并不说明问题,更可能的是过拟合。
1. “我想要知道单个测试样本最有可能属于哪一个类别(训练时用的是多类别分类),该如何做?”
单个样本预测的类别,就是上述测试命令中的返回值predict_label,它是一个列向量,第i个元素代表第i个测试样本的预测类别。
2. “我看见不少人在训练完成后,用另一个样本集做predict,返回一个介于0%和100%之间的accuracy值。我想这个值只能解释为测试样本中正确的类别编号所占的百分比,但这又有何意义?这个accuracy到底是什么意义?”
这个accuracy非常有意义。想想你训练了一个模型,如何评价这个模型的好坏?当然是找一组新的测试数据来进行预测,如果预测的准确率非常高,100%,那说明之前训练的模型是比较好的。当然前提是测试样本也要足够多。
-
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询