在每本书和例子中,它们总是只显示二进制分类(两个类),新的向量可以属于任何一个类.
这里的问题是我有4个类(c1,c2,c3,c4).我已经训练了4个班级的数据.
对于新的向量,输出应该是
C1 80%(获胜者)
c2 10%
c3 6%
c4 4%
这该怎么做?我打算使用libsvm(因为它最受欢迎).我不太了解它.如果你们中的任何人以前使用它,请告诉我我应该使用的具体命令.
我一直在努力掌握支持向量机的基础知识,并下载和阅读了许多在线文章.但仍然无法掌握它.
我想知道,如果有的话
或者你可以想到的东西,这将使我能够轻松学习SVM基础知识.
PS:我以某种方式设法学习PCA(主成分分析).顺便说一句,你们猜想我正在研究机器学习.
我想用csv2libsvm.py(https://github.com/zygmuntz/phraug/blob/master/csv2libsvm.py)将csv文件转换为稀疏格式文件.
CSV文件包含37个属性+标签(最后一列).它不包含标题或索引.第1行的Exp:63651000000.0,63651000000.0,153.1,0,0,0,0,0,0,5,1,0,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
在委托以下命令行时:python csv2libsvm.py Z.csv data.txt 38 1
我收到以下错误:
Traceback (most recent call last):
File "csv2libsvm.py", line 47, in <module>
headers = reader.next()
AttributeError: '_csv.reader' object has no attribute 'next'
Run Code Online (Sandbox Code Playgroud)
你对这个问题有什么看法吗?
在特定的应用程序中,我需要机器学习(我知道我在本科课程中学到的东西).我使用支持向量机并解决了问题.它的工作正常.
现在我需要改进系统.这里的问题是
我每周都会获得额外的培训示例.现在,系统开始使用更新的示例(旧示例+新示例)进行新的培训.我想让它增量学习.使用以前的知识(而不是前面的例子)和新的例子来获得新的模型(知识)
我的训练样例有3个班级.因此,每个训练样例都适合这三个类中的一个.我想要"未知"类的功能.任何不适合这3个类的东西都必须标记为"未知".但我不能将"未知"视为一个新类,并为此提供示例.
假设,实现了"未知"类.当类是"未知"时,应用程序的用户输入他认为该类可能的内容.现在,我需要将用户输入合并到学习中.我也不知道怎么做.如果用户输入一个新类(即一个尚未在训练集中的类),它会有什么不同吗?
我是否需要选择新算法或支持向量机可以执行此操作?
PS:我正在使用libsvm实现SVM.
从文档 scikit-learn实现了SVC,NuSVC和LinearSVC,它们是能够对数据集执行多类分类的类.另一方面,我也读到了scikit学习也使用libsvm进行支持向量机算法.我对SVC和libsvm版本之间的区别有点困惑,现在我猜不同的是,SVC是多类问题的支持向量机算法,而libsvm是二进制类问题.有人能帮助我解决这个之间的区别吗?
我迫切需要在python中使用LibSVM的分类任务示例.我不知道输入应该是什么样的,哪个功能负责培训,哪个功能用于测试谢谢
你知道有什么好的c ++ svm库我试过libsvm http://www.csie.ntu.edu.tw/~cjlin/libsvm/但是到目前为止我并没有大吃一惊.
我也听说过SVMLight和TinySVM.你试过吗?任何新球员?
谢谢 !
我目前正致力于使用不同的图像描述符对图像进行分类.由于他们有自己的指标,我使用预先计算的内核.因此,考虑到这些NxN内核矩阵(总共N个图像),我想训练和测试SVM.虽然我对使用SVM不是很有经验.
令我困惑的是如何输入培训输入.使用内核MxM的子集(M是训练图像的数量),训练具有M个特征的SVM.但是,如果我理解正确,这限制了我使用具有相似数量的功能的测试数据.尝试使用大小为MxN的子内核,在训练期间会导致无限循环,因此,在测试时使用更多功能会产生不良结果.
这导致使用相同大小的训练和测试集给出合理的结果.但是,如果我只想分类,说一张图像,或者为每个班级训练一定数量的图像并用其余的训练,这根本不起作用.
如何消除培训图像和功能的数量之间的依赖关系,以便我可以测试任意数量的图像?
我正在使用libsvm for MATLAB,内核是距离矩阵,范围在[0,1]之间.