随着StompChicken的更正(我错误地计算了一个点产品,呃!)答案似乎是肯定的.我已经使用具有相同正确结果的预先计算的内核测试了相同的问题.如果你使用libsvm StompChickens清楚,有组织的计算是一个非常好的检查.
原始问题: 我即将开始在libSVM中使用预先计算的内核.我注意到 弗拉德对一个问题的回答,我认为确认libsvm给出了正确的答案是明智的.我从非预先计算的内核开始,只是一个简单的线性内核,在3维空间中有2个类和3个数据点.我用过这些数据
1 1:3 2:1 3:0
2 1:3 2:3 3:1
1 1:7 3:9
Run Code Online (Sandbox Code Playgroud)
调用svm-train -s 0 - t 0包含的模型文件
svm_type c_svc
kernel_type linear
nr_class 2
total_sv 3
rho -1.53951
label 1 2
nr_sv 2 1
SV
0.4126650675419768 1:3 2:1 3:0
0.03174528241667363 1:7 3:9
-0.4444103499586504 1:3 2:3 3:1
Run Code Online (Sandbox Code Playgroud)
但是,当我手动计算解决方案时,这不是我得到的.有谁知道libsvm是否有错误,或者是否有人可以比较注释,看看他们是否得到了与libsvm相同的功能?
系数a1,a2,a3通过LIBSVM退换应该是使这些值
a1 + a2 + a3 - 5*a1*a1 + 12*a1*a2 - 21*a1*a3 - 19*a2*a2/2 + 21*a2*a3 - 65*a3*a3 …Run Code Online (Sandbox Code Playgroud) 不幸的是我在下面的简单例子中使用predict()时遇到了问题:
library(e1071)
x <- c(1:10)
y <- c(0,0,0,0,1,0,1,1,1,1)
test <- c(11:15)
mod <- svm(y ~ x, kernel = "linear", gamma = 1, cost = 2, type="C-classification")
predict(mod, newdata = test)
Run Code Online (Sandbox Code Playgroud)
结果如下:
> predict(mod, newdata = test)
1 2 3 4 <NA> <NA> <NA> <NA> <NA> <NA>
0 0 0 0 0 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么predict()只给出训练样本(x,y)的拟合值而不关心测试数据?
非常感谢您的帮助!
理查德
我计划使用LibSVM来预测Web应用程序中的用户真实性.(1)收集有关特定用户行为的数据(例如,登录时间,IP地址,国家等).(2)使用收集的数据训练SVM(3)使用实时数据比较并生成真实性水平的输出
有人可以告诉我如何用LibSVM做这样的事情?Weka能帮助解决这些类型的问题吗?
我最近一直试图使用svm进行功能分类.虽然我这样做,但我想到了一个问题.
哪种方法更好用,LIBSVM或者svmclassify?我的意思svmclassify是在MATLAB中使用内置函数,如svmtrain和svmclassify.从这个意义上说,我有兴趣知道哪种方法更准确,哪种方法更容易使用.
由于MATLAB已经有了Bioinformatics工具箱,你为什么要使用LIBSVM?是不是像svmtrain和svmclassify已经内置的功能.. LIBSVM带来了哪些额外的好处?
我想听听你的一些意见.如果问题很愚蠢,请原谅我..
我有三类不平衡数据问题(90%,5%,5%).现在我想使用LIBSVM训练分类器.
问题是LIBSVM优化其参数gamma和Cost以获得最佳精度,这意味着100%的示例被归类为class 1,这当然不是我想要的.
我已经尝试修改重量参数-w但没有太大的成功.
所以我想要的是,以一种优化成本的方式修改grid.py,以及按类别而不是整体精度划分的精度和召回的伽玛.有没有办法做到这一点?或者是否有其他脚本可以做这样的事情?
我目前正在开展一个项目,我必须从悲伤或快乐中提取用户的面部表情(一次只能从网络摄像头一个用户).
我对面部表情进行分类的方法是:

现在我正在尝试做面部表情分类
SVM是个不错的选择吗?如果是我如何从SVM开始:
我将如何使用这个地标训练svm的每一个情绪?
当我使用由75%'true'标签和25%'false'标签组成的不平衡数据集时,我应该如何在libSVM中设置gamma和Cost参数?由于数据不平衡,我得到一个恒定的错误,即所有预测标签都设置为'True'.
如果问题不在于libSVM,而在于我的数据集,我应该如何从理论机器学习的角度处理这种不平衡?*我使用的功能数量在4-10之间,我有一小组250个数据点.
我写了这段代码,想获得分类的概率。
from sklearn import svm
X = [[0, 0], [10, 10],[20,30],[30,30],[40, 30], [80,60], [80,50]]
y = [0, 1, 2, 3, 4, 5, 6]
clf = svm.SVC()
clf.probability=True
clf.fit(X, y)
prob = clf.predict_proba([[10, 10]])
print prob
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出:
[[0.15376986 0.07691205 0.15388546 0.15389275 0.15386348 0.15383004 0.15384636]]
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为概率应该是
[0 1 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
(注意必须预测类别的样本与第二个样本相同)同样,该类别获得的概率最低。
使用机器学习库PyML时,我遇到了一个恼人的问题.PyML使用libsvm来训练SVM分类器.问题是libsvm将一些文本输出到标准输出.但因为那是在Python之外我不能拦截它.我尝试使用问题中描述的方法在Python中静默函数的标准输出,而不会破坏sys.stdout并恢复每个函数调用,但这些都没有帮助.
有什么方法可以做到这一点.修改PyML不是一种选择.
寻找libSVM的C++接口的教程和/或示例代码.具体来说,我想对使用SIFT或SURF特征描述符提取的特征进行分类.
我试过在网站上查找并没有找到任何此类文档/示例代码.