如何使用libsvm 多分类实例进行分类

SVM是一个二分类器,当遇到多类别的时候,一般采取如下两种策略。
a.一对多法(one-versus-rest,简称1-v-r SVMs)。训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。
b.一对一法(one-versus-one,简称1-v-1 SVMs)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本进行分类时,最后得 票最多的类别即为该未知样本的类别。Libsvm中的多类分类就是根据这个方法实现的
阅读(...) 评论()查看: 28423|回复: 61
【转】Matlab中使用libsvm进行分类预测时的标签问题再次说明
签到天数: 12 天[LV.3]偶尔看看II
最近看到论坛中有不少朋友在发帖提问关于libsvm使用时的标签设置问题,我记得我以前是给朋友回复个这个问题,现在就我自己的理解再次说明一下。
首先用svm(libsvm,lssvm、hssvm)等等进行分类预测,要进行三个步骤1、训练 2、测试 3、预测
1、训练——大家都知道,就是用训练数据集,不管你采用那种寻优方式,得到相对的最优参数,训练模型。
2、测试——就是用刚刚得到的模型,对测试数据进行测试,此时测试数据集的label是已知的,这主要是用来对刚刚的模型的检测,或者是对参数的检测、或者是对模型的泛化能力的检测。此时会得到一个准确率,这时的准确率是有用的,是有实际意义的,因为原来的label是已知的。
3、预测——预测就是对未知类别的样本在测试确定了模型有好的泛化能力的情况下的预测分类,这步才是真的预测能力功能的实现。此时数据的label随便给了,这样是为了满足libsvm对数据格式的要求。此时也会得到一个准确率,但是这个是没有实际意义的,因为原始的label是随便给的,没有意义,我们只是关心的是最后得到的类别号——达到分类的目的。
签到天数: 11 天[LV.3]偶尔看看II
faruto楼主你好!我想提一个关于预测的问题。假使我使用训练样本数据训练了一个model,训练样本数据是:150*10矩阵为输入,即“train_matrix”,150*1矩阵为“train_label”;l然后又用测试样本测试了这个model,得到这个model准确度可以接受;最后用这个model进行预测,给一个1*10的输入,需要预测这个输入所对应的“label”,但是关于label的信息都没有,于是给了一个1*1的随机值,但是得到的predict预测值就直接等于这个随机值了,这是怎么回事?谢谢!
还有就是,预测是不是这么使用的?预测时它的输入是不是可以如上文所讲这样给?预测值完全不知道,包括具体数值或者是其和输入的函数关系,那么predict语句中那个“label”位置究竟要如何给出其随机值?谢谢!
该用户从未签到
faruto楼主,我想请教你,如果有一组训练数据,但不知道其标签,怎么对其进行测试、预测啊?是随机给啊,还 ...
测试集用于测试(已知真实类标签的测试集)和预测(待分类的测试集)两个不同过程,前一个过程用于对(用训练集)已建立好的模型的检测,或者是对参数的检测、或者是对模型的泛化能力的检测,该过程利用真实的标签计算分类准确率进而判断分类器效果(svmpredict函数输出的准确率是有意义的);后一个过程是在不给出测试集真实标签的前提下(但又要满足LIBSVM工具箱对数据输入格式的要求,故可给testlabel向量随机赋一组值),利用刚建立的模型给出对待分类样本的分类结果(即输出每个测试样本的类标签)
该用户从未签到
也就是说,我们只关心预测的结果(类标签),而无法得知对未知类别样本分类的正确与否
因为对未知样本分类的能力已通过测试过程知晓
该用户从未签到
顶一下,楼主给力啊,为我们这些小菜鸟辛苦啦
签到天数: 12 天[LV.3]偶尔看看II
wangying2009 发表于
顶一下,楼主给力啊,为我们这些小菜鸟辛苦啦
网站官方,,,保证您有偿编程安全。
该用户从未签到
顶啊顶,,,谢谢。。
签到天数: 12 天[LV.3]偶尔看看II
zaizai 发表于
顶啊顶,,,谢谢。。
O(∩_∩)O
网站官方,,,保证您有偿编程安全。
该用户从未签到
faruto楼主,我想请教你,如果有一组训练数据,但不知道其标签,怎么对其进行测试、预测啊?是随机给啊,还是。。。
签到天数: 12 天[LV.3]偶尔看看II
zhifei 发表于
faruto楼主,我想请教你,如果有一组训练数据,但不知道其标签,怎么对其进行测试、预测啊?是随机给啊,还 ...
没有标签没有办法训练
网站官方,,,保证您有偿编程安全。
签到天数: 12 天[LV.3]偶尔看看II
gelingnuaa 发表于
faruto楼主你好!我想提一个关于预测的问题。假使我使用训练样本数据训练了一个model,训练样本数据是:150 ...
看看这几个帖子
如何使用libsvm进行分类【by faruto】
如何使用libsvm进行回归预测【by faruto】
签到天数: 12 天[LV.3]偶尔看看II
gelingnuaa 发表于
faruto楼主你好!我想提一个关于预测的问题。假使我使用训练样本数据训练了一个model,训练样本数据是:150 ...
关于SVM的那点破事[长期更新整理 by faruto]
Powered by你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。Re: 请教LIBSVM分类问题中怎样得到每个测试点的概率 - 饮水思源
饮水思源 - 文章阅读  [讨论区: AI][][][][][][][][][][][][]
发信人: ingot (铁猪头), 信区: AI
题: Re: 请教LIBSVM分类问题中怎样得到每个测试点的概率
发信站: 饮水思源 (日22:37:55 星期一)
SVM的理论中没有后验概率的描述,如果想得到后验概率,可以采用其它的算法,如boost
【 在 romber 的大作中提到: 】
: 关于两类分类问题,0和1
: 用svmtrain train.txt 得到train.txt.model
: 然后用svmpredicate test.txt train.txt.model out
: out中的输出为0,1
: 我想得到关于test.txt中每个点(用每行向量描述)与最大margin的距离的描述,也..
: 可以说是用概率来描述吧,离margin越远就表明这个点分成某类的正确率越大。我想..
: 到这些值,该怎么设置参数来得到了。谢谢。
※ 来源:?饮水思源 bbs.?[FROM: 159.226.20.44]
[][][][][][][][][][][][]

我要回帖

更多关于 libsvm 多分类 的文章

 

随机推荐