问题标签 [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.
libsvm - 分类特征
对于 LibSVM。
在“支持向量分类的实用指南”中,建议使用 m 数来表示 m 类别属性。例如 {red, green, blue} 可以表示为 (0,0,1), (0,1,0), (1,0,0)。
但在 README 中,它说 index:value 对中的 value 只能采用实数。
任何人都知道如何在数据文件中表示(0,0,1)?
opencv - libsvm 准确吗?
通过 StompChicken 的更正(我错误地计算了一个点积,呃!),答案似乎是肯定的。此后,我使用预先计算的内核测试了相同的问题,并得到了相同的正确结果。如果您清楚地使用 libsvm StompChickens,那么有组织的计算是一个非常好的检查。
原始问题: 我即将开始在 libSVM 中使用预计算内核。我注意到 Vlad 对问题的回答,我认为确认 libsvm 给出了正确的答案是明智的。我从非预计算内核开始,只是一个简单的线性内核,在 3 维空间中有 2 个类和三个数据点。我用了数据
调用生成的模型文件svm-train -s 0 - t 0
包含
但是,当我手动计算解决方案时,这不是我得到的。有谁知道 libsvm 是否存在错误,或者任何人都可以比较笔记,看看他们是否得到了与 libsvm 相同的东西?
libsvm 返回的系数a1
, a2
,a3
应该是使
尽可能大,
a1 + a3 = a2
并且每个a1
, a2
,a3
都必须位于 0 和 1 之间(C 的默认值)。
上面的模型文件说答案是
但是只需代a2 = a1 + a3
入上面的大公式并确认两个偏导数都为零,以查看该解是否正确(因为a1
, a2
,都不a3
是 0 或 1)但它们不为零。
我做错了什么,还是 libsvm 给出了不好的结果?(我希望我做错了什么。)
c# - SVM 可以增量学习吗?
我正在使用多维 SVM 分类器(SVM.NET,libSVM 的包装器)对一组特征进行分类。
给定一个 SVM 模型,是否可以合并新的训练数据而无需重新计算所有先前的数据?我想另一种说法是:SVM 是可变的吗?
algorithm - 帮助我理解二进制 SVM 中的线性可分性
我从math.stackexchange.com交叉发布了这个,因为我没有得到任何反馈,而且这对我来说是一个时间敏感的问题。
我的问题与支持向量机中超平面的线性可分性有关。
根据维基百科:
...形式上,支持向量机在高维或无限维空间中构造一个超平面或一组超平面,可用于分类、回归或其他任务。直观地说,与任何类的最近训练数据点的距离最大的超平面(所谓的功能边距)实现了良好的分离,因为一般来说,边距越大,分类器的泛化误差越低。
超平面对类的线性分离直观地对我来说是有意义的。我想我理解二维几何的线性可分性。但是,我正在使用流行的 SVM 库 (libSVM) 实现 SVM,并且在处理数字时,我无法理解 SVM 如何在类之间创建曲线,或者将类别 1 中的中心点包含在圆形曲线中如果 n 维空间 V 中的超平面是维度 n - 1 的“平面”子集,则被类别 2 中的点包围,或者对于二维空间 - 一维线。
这就是我的意思:
那不是超平面。那是圆形的。这是如何运作的?或者 SVM 内部的维度是否比二维 2D 输入特征多?
此示例应用程序可在此处下载。
编辑:
感谢您的全面回答。所以 SVM 可以通过使用核函数很好地分离奇怪的数据。在将数据发送到 SVM 之前对数据进行线性化是否有帮助?例如,我的一个输入特征(一个数值)有一个转折点(例如 0),它恰好适合类别 1,但高于和低于零则适合类别 2。现在,因为我知道这一点,它会帮助分类发送SVM这个特征的绝对值?
python - 抑制在库外调用模块的输出
我在使用机器学习库PyML时遇到了一个烦人的问题。PyML 使用libsvm来训练 SVM 分类器。问题是 libsvm 将一些文本输出到标准输出。但因为那是在 Python 之外,所以我无法拦截它。我尝试使用问题中描述的方法使 Python 中的函数的标准输出静音,而不破坏 sys.stdout 并恢复每个函数调用,但这些方法都没有帮助。
有什么办法可以做到这一点。修改 PyML 不是一种选择。
python - 为 SVM 库 LIBSVM 使用 python 绑定的示例
我急需一个在 python 中使用 LibSVM 的分类任务示例。我不知道输入应该是什么样子,哪个函数负责训练,哪个函数负责测试 谢谢
machine-learning - LibSVM 和非数值数据
我对使用 LibSVM 进行文本分类很感兴趣。您如何建议我将术语/单词转换为数字数据,以便 LibSVM 可以理解?
谢谢!
machine-learning - 机器学习——支持向量机特征融合技术
在我的期末论文中,我试图通过结合颜色和深度信息来建立一个 3D 人脸识别系统。我做的第一步是使用迭代最近点算法将数据头重新对齐到给定的模型头。对于检测步骤,我正在考虑使用 libsvm。但我不明白如何将深度和颜色信息组合到一个特征向量中?它们是相关信息(每个点都由颜色(RGB)、深度信息和扫描质量组成)..你建议做什么?像加权一样的东西?
编辑:昨晚我读了一篇关于 SURF/SIFT 功能的文章,我想使用它们!它可以工作吗?概念如下:从彩色图像和深度图像(范围图像)中提取这些特征,使用每个特征作为 svm 的单个特征向量?
r - predict.svm 不预测新数据
不幸的是,我在以下简单示例中使用 predict() 时遇到问题:
结果如下:
谁能解释为什么 predict() 只给出训练样本 (x,y) 的拟合值而不关心测试数据?
非常感谢您的帮助!
理查德
python - libsvm 预测方法混淆
我对 libsvm 中的 svm_predict() 方法有疑问。
自述文件有这个快速入门示例代码:
现在我知道 y 是与 x 中的字典相关联的类别列表。我也了解 svm_train 部分。
没有意义的部分是在 svm_predict 中,我需要提供来自 y 的“真实值”以及 x 中的测试数据。我认为这个想法是我提前不知道测试数据的分类。
如果我的训练数据是:
但我的测试数据是:
那为什么我需要将 z 的真实值传递给 svm_predict() ,例如:
我不会知道 z 的真实值——这就是预测的目的。我应该在执行预测时为 y 输入任意分类值,还是我完全遗漏了什么?
谢谢大家