问题标签 [libsvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pyml得到的分类器如何使用
我是 Python 中 PyML 的新用户。使用教程,我做了以下事情:
我得到了结果集r
,但我不明白如何使用这个结果集用 Python 对一个全新的实例进行分类。有经验的人可以帮帮我吗?任何建议将不胜感激。
谢谢。
scale - svmlib 缩放与 pyml 规范化、缩放和转换
归一化特征向量以用于线性内核 SVM 的正确方法是什么?
查看 LIBSVM,看起来它只是通过将每个功能重新缩放到一个标准的上限/下限来完成的。但是,PyML 似乎没有提供一种以这种方式扩展数据的方法。取而代之的是,有一些选项可以按向量的长度对向量进行归一化,按平均值移动每个特征值,同时按标准差重新缩放,等等。
我正在处理大多数特征都是二进制的情况,除了少数是数字的。
opencv - CvSVM 问题
使用opencv CvSVM的一些问题
它使用什么样的 svm?是否使用 svmlight?OpenCV2.2 有 svmlight,但我找不到太多对它的引用。
如果我使用 CvSVM,我是否需要手动创建 80% 的训练数据和 20% 的测试数据,并迭代 5 倍重新验证以获得更好的输出?
我正在使用 HOG 做一个检测器,我正在密切关注包装中的 opencv 示例行人检测器。我需要学习一个分类器来检测除行人之外的其他物体。任何建议将不胜感激。
谢谢!
machine-learning - 为什么 svm_predict 和 svm_predict_probability 在 java libsvm 中针对异或问题给出不同的结果?
我有一个简单的异或问题,我想在 libsvm 中使用 RBF 内核来学习。当我使用 XOR 问题训练 java libsvm 时,例如:
如果我使用 svm.svm_predict,我对测试向量 (0,0) 进行分类得到的结果为 -1,但如果我使用 svm.svm_predict_probability,则为 +1。甚至返回的概率也是相反的。我使用的代码和结果如下。谁能告诉我我在这里做错了什么?
- - - - - 结果 - - - - - - -
显然结果是完全相反的。这似乎发生在我选择作为测试的任何示例中。
有人可以对此有所了解吗?提前致谢
machine-learning - 如何使用 libsvm 进行文本分类?
我想用 SVM 编写一个垃圾邮件过滤程序,我选择 libsvm 作为工具。
我收到了 1000 封好邮件和 1000 封垃圾邮件,然后我将它们分类为:
700 份好邮件 700 份垃圾邮件
300 份好测试邮件 300 份垃圾测试邮件
然后我编写了一个程序来计算每个单词在每个文件中出现的时间,得到的结果如下:
我了解到 libsvm 需要如下格式:
1 1:3 2:1 3:0
2 1:3 2:3 3:1
1 1:7 3:9
作为其输入。我知道 1, 2, 1 是标签,但是 1:3 是什么意思?
我怎样才能将我拥有的东西转换成这种格式?
statistics - 分类分数:SVM
我正在使用 libsvm 进行多类分类。如何附加分类分数,以比较分类的置信度,给定样本的输出为:
java - Java-ML(LibSVM) 如何获得类概率?
我们正在使用 Java-ML(LibSVM) 来针对多类问题执行 SVM 算法
返回一个标准向量(意味着所有值都是 0 ,classDistributtion()
但一个值等于 1)
java-ml - http://java-ml.sourceforge.net/
libsvm - SVM 中的严格类标签
我正在使用one-vs-all进行21
-class svm categorization。
对于每个内核,我希望标签-1
表示“不在此类中”,并且标签1
表示“确实在此类中” 。21
我已经使用这个标准生成了我的预计算内核和我的测试向量。
对于这些类,使用easy.py
一切都很顺利20
,但是对于其中一个类,标签被切换了,因此所有应该被标记1
为在类中的输入都被标记了,-1
反之亦然。
该类的不同之处在于预先计算的内核中的第一个向量被标记1
,而在所有其他内核中,第一个向量被标记-1
。这表明LibSVM 重新标记了我的所有向量。
有没有办法防止这种情况或解决它的简单方法?
artificial-intelligence - 帮助——LibSVM 100% 的准确度?
名义上是一个很好的问题,但我很确定这是因为发生了一些有趣的事情......
作为上下文,我正在研究面部表情/识别空间中的一个问题,因此获得 100% 的准确率似乎令人难以置信(并不是说它在大多数应用程序中都是合理的......)。我猜数据集中存在一些一致的偏差,这使得 SVM 很容易得出答案,=或=,更有可能的是,我在 SVM 方面做错了。
我正在寻找帮助了解正在发生的事情的建议——是我吗(=我对 LibSVM 的使用)?还是数据?
细节:
- 大约 2500 个带标签的数据向量/实例(转换后的个人视频帧——总共<20 个人),二元分类问题。~900 个特征/实例。不平衡数据集的比例约为 1:4。
- Ran subset.py 将数据分成测试(500 个实例)和训练(剩余)。
- 跑“svm-train -t 0”。(注意:显然不需要'-w1 1 -w-1 4'......)
- 在测试文件上运行 svm-predict。准确度=100%!
尝试的事情:
- 通过一些无意的命令行参数错误检查了大约 10 次我没有对相同的数据文件进行训练和测试
- 多次重新运行subset.py(即使使用-s 1)并且只训练/测试多个不同的数据集(以防我随机在最神奇的训练/测试pa
- 运行一个简单的类似 diff 的检查以确认测试文件不是训练数据的子集
- 数据上的 svm-scale 对准确度没有影响(准确度=100%)。(虽然支持向量的数量确实从 nSV=127, bSV=64 下降到 nBSV=72, bSV=0。)
- ((奇怪))使用默认的 RBF 内核(副线性 - 即删除 '-t 0')导致准确性进入垃圾(?!)
- (健全性检查)使用在缩放数据集上针对未缩放数据集训练的模型运行 svm-predict 导致准确度 = 80%(即,它总是猜测主导类)。这严格来说是一个健全性检查,以确保以某种方式 svm-predict 名义上在我的机器上正确运行。
初步结论?:
数据中的某些东西很奇怪——不知何故,在数据集中,SVM 正在接受一种微妙的、由实验者驱动的效果。
(然而,这并不能解释为什么 RBF 内核会给出垃圾结果。)
非常感谢关于 a)如何修复我对 LibSVM 的使用(如果这实际上是问题)或 b)确定 LibSVM 数据中的微妙实验者偏见的任何建议。
matlab - 将预计算的 chi2 内核与 libsvm (matlab) 一起使用时结果不佳
我正在尝试 libsvm,并按照该示例在软件随附的 heart_scale 数据上训练 svm。我想使用我自己预先计算的 chi2 内核。训练数据的分类率下降到 24%。我确定我正确计算了内核,但我想我一定是做错了什么。代码如下。你能看出有什么错误吗?帮助将不胜感激。
这是内核的预计算方式:
使用不同的 svm 实现(vlfeat),我获得了大约 90% 的训练数据分类率(是的,我在训练数据上进行了测试,只是为了看看发生了什么)。所以我很确定 libsvm 结果是错误的。