问题标签 [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 - ml-py svm 收敛但分类错误
我正在尝试用 python 和 SVM 做一些分类任务。
从收集的数据中,我提取了每个类的特征向量并创建了一个训练集。特征向量具有 n 维(39 或更多)。因此,假设对于 2 个类,我有一组 39 维特征向量和一个类标签数组,对应于特征向量中的每个条目。目前,我正在使用 mlpy 并执行以下操作:
#为实例中的每个条目分配一个标签(+1/-1),(来自#featurevector 1的条目为+1,对于featurevector2为-1
我在这里做错了吗?还是我应该使用其他库?请帮忙。
python - 抑制 libsvm (python) 中的输出
我正在使用 python 中的 libsvm (svmutils) 来执行分类任务。分类器是准确的。但是,我得到这样的输出:
有什么办法可以抑制这个对话框?分类器非常好用,我只是好奇。另外,"Accuracy"
代表什么?为什么在我的情况下这是 0%?(数据在 80 个维度上不重叠。总共 4 个类。我也对其进行了适当的规范化。)
python - 如何从 scikits.learn 分类器中提取信息然后在 C 代码中使用
我已经在 Python 中使用 scikits.learn 训练了一堆 RBF SVM,然后对结果进行了腌制。这些是用于图像处理任务的,我想做的一件事是在一些测试图像的每个像素上运行每个分类器。也就是说,从以像素 (i,j) 为中心的窗口中提取特征向量,在该特征向量上运行每个分类器,然后移动到下一个像素并重复。这对于 Python 来说太慢了。
澄清:当我说“这太慢了......”时,我的意思是即使 scikits.learn 使用的 Libsvm 底层代码也太慢了。我实际上正在为 GPU 编写一个手动决策函数,因此每个像素的分类是并行发生的。
我是否可以使用 Pickle 加载分类器,然后获取某种描述如何从特征向量计算决策的属性,然后将该信息传递给我自己的 C 代码?在线性 SVM 的情况下,我可以只提取权重向量和偏置向量,并将它们作为输入添加到 C 函数中。但是对于 RBF 分类器来说,等效的事情是什么,我如何从 scikits.learn 对象中获取这些信息?
补充:第一次尝试解决方案。
看起来分类器对象具有support_vectors_
包含支持向量作为数组的每一行的属性。还有一个属性dual_coef_
是 1 bylen(support_vectors_)
系数数组。从关于非线性 SVM 的标准教程中,看来应该执行以下操作:
v
从被测数据点计算特征向量。这将是一个与 的行长度相同的向量support_vectors_
。- 对于 中的每一行
i
,support_vectors_
计算该d[i]
支持向量与 之间的平方欧几里得距离v
。 - 计算哪里
t[i]
是RBF 参数。gamma * exp{-d[i]}
gamma
- 总结
dual_coef_[i] * t[i]
一下i
。intercept_
将 scikits.learn 分类器的属性值添加到该总和中。 - 如果总和为正,则归为 1。否则,归为 0。
补充:在此文档链接的第 9 页上,它提到intercept_
分类器的属性确实包含偏差项。我已更新上述步骤以反映这一点。
classification - LibSVM:交叉验证和测试期间的 -wi 选项(权重选择)
我需要有关 libSVM 的权重选项的帮助。我在某些时候感到困惑;我们是否也应该在进行交叉验证时使用 -wi 选项?如果是这样,我们应该使用整个数据的计算权重还是根据 v-1 子集计算的权重(用于 v-fold 交叉验证)?我的第二个问题是我们应该在预测期间使用 -wi 选项吗?如果是这样,我们应该在训练期间使用计算的权重还是应该根据测试数据中负实例和正实例的分布来计算权重?
例如; 我们有 50 + 数据和 200 - 数据。因此,在计算出最佳 c 和 gamma 参数值之后,我们将在训练时使用 -w1 4 -w-1 1 选项。但是网格搜索和交叉验证期间的训练呢?假设我们正在执行 5 折交叉验证。在对剩余的 4 个子集进行训练时,负实例和正实例的分布可能会发生变化。那么我们应该在这个 5 折交叉验证期间重新计算权重吗?
除了我们应该在测试时使用 -w1 4 -w-1 1 选项吗?
谢谢
matlab - 如何在 Matlab 中使用 libsvm?
我是 matlab 新手,不知道如何使用 libsvm。是否有任何示例代码用于使用 SVM 对某些数据(具有 2 个特征)进行分类,然后将结果可视化?内核(RBF、多项式和 Sigmoid)怎么样?我在 libsvm 包中看到了该自述文件,但我无法确定它的开头或结尾,请您举一个在 matlab 中使用支持向量机 (SVM) 对 2 个类进行分类的示例,例如:
任何帮助将不胜感激。
matlab - 如何在 MATLAB 上开始 SVM 训练
我有一组我已经获得并想使用 SVM 进行分类的面部特征。我打算使用 libsvm 包并使用 MATLAB 进行培训。我已经通过观看斯坦福讲座了解了 SVM。但我不确定如何使用 libsvm 启动.. 需要一些指导...
validation - 如何在 LibSVM 中实现十折交叉验证
我已经能够运行 LibSVM 包中的示例。现在我需要对一个数据集进行十倍交叉验证(MATLAB)。我该怎么做呢?
matlab - 哪种方法更好?libsvm 或 svmclassify?
我最近一直在尝试使用 svm 进行特征分类。当我这样做的时候,我想到了一个问题。
哪个是更好的使用方法,LIBSVM
或者svmclassify
?我的意思svmclassify
是在 MATLAB 中使用内置函数,例如svmtrain
和svmclassify
. 从这个意义上说,我很想知道哪种方法更准确,哪种方法更容易使用。
既然 MATLAB 已经有了 Bioinformatics 工具箱,为什么还要使用 LIBSVM?不是已经内置的功能svmtrain
吗svmclassify
.. LIBSVM 带来了哪些额外的好处?
我想听听你的一些意见。如果问题很愚蠢,请原谅我..
machine-learning - 如何确定由 libsvm 计算的决策边界
我正在使用 libsvm 使用线性 SVM 对数据进行分类,并且我想知道它产生的分离超平面(即向量w和实数 b,使得x被归类为正样本 iff wx +b>0)。工具 svm-weight 返回w的系数,但我如何计算 b?
c - 抑制 R 中的 C 警告消息
我正在从与 libsvm(C 程序)接口的 R 包 e1071 中调用 R 函数。此函数将 C (printf) 警告消息传递到 R 控制台。我知道这一点是因为警告消息的形式是(警告:...),而 R 警告消息是大写的(即警告:...)。
我已经尝试了一切来摆脱 R 中的这些消息(接收器、suppressWarnings、不可见),但似乎没有任何效果。
有任何想法吗?
谢谢!