在最新版本的 libsvm(v3.17 2013.04.01)中,'svm_model' 类中的 'predict' 方法已被删除。
替代方法似乎是模块“svmutil”中的方法“svm_predict”。但是我看不懂这个方法的参数data(y,x)。
def svm_predict(y, x, m, options=""):
"""
svm_predict(y, x, m [, options]) -> (p_labels, p_acc, p_vals)
使用 SVM 模型 m 预测数据 (y, x)。
选项:
-b probability_estimates:是否预测概率估计,
0 或 1(默认 0);对于一类 SVM,仅支持 0。
-q :安静模式(无输出)。
返回元组包含
p_labels:预测标签列表
p_acc:一个元组,包括准确度(用于分类)、均方
误差和平方相关系数(用于回归)。
p_vals:决策值或概率估计的列表(如果'-b 1'
指定)。如果 k 是类的数量,对于决策值,
每个元素包括预测 k(k-1)/2 二进制类的结果
支持向量机。对于概率,每个元素包含 k 个值,表示
测试实例在每个类中的概率。
请注意,此处的类顺序与“model.label”相同
模型结构中的字段。
"""
最佳答案
“y”是标签,对应“x”中的数据点
这是我上个月做的一个例子:
#!/usr/bin/python
from svmutil import *
model = svm_load_model("train_yesterday.model")
values=[{1:1.37599, 2:1.37597, 3:1.37597, 4:1.37587, 5:1.37586}]
newcurve = []
for j in range(1,121):
a,b,val = svm_predict([1],values,model)
newval = val[0][0]
for i in range(1,5):
values[0][i] = values[0][i+1]
values[0][5] = newval
关于python - 如何使用libsvm中svm_model的 'predict'函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902712/