python - 如何使用libsvm中svm_model的 'predict'函数?

标签 python api svm libsvm

在最新版本的 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/

相关文章:

python - 激活的元素和选定的元素有什么区别?

python - 在 SPSS 中合并数据时遇到问题

javascript - 适用于 JavaScript API 客户端的适当 OAuth2 流程

android - Gradle 有错误,但构建良好

解决使用 R 的 CMA Bioconductor 包时 SVM 分类交叉验证中的 'model empty' 错误

machine-learning - Weka 中分类前的聚类

python - 用递增序列填充连续的零序列

python - 如何修复我的井字游戏中检查完整棋盘的功能

c - 使用 WinMain() 和 WindowProc() 建立窗口后,在哪里添加实际程序? (C++)

c++ - Opencv 3 SVM trainAuto 是否也缩放标签?