我怎样才能节省LIBSVM Python对象实例?(How can I save a LibSVM

2019-09-19 09:01发布

我想不用不得不再次训练它使用该分类中的其他计算机。 我曾经从cPickle的scikit节省一些分类。 做同样与LIBSVM它给了我一个“ValueError异常:含有指针不能腌制的ctypes对象”。

我使用LIBSVM 3.1和Python 2.7.3。

谢谢

from libsvm.svm import *
from libsvm.svmutil import *
import cPickle

x = [[1, 0, 1], [-1, 0, -1]]
y = [1, -1]
prob = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
labels_pred, acc, probs = svm_predict([-1, 1], [[1, 1, 1], [0, 0, 1]], m)
print labels_pred, acc, probs

import ipdb; ipdb.set_trace()

filename='libsvm-classif.pkl'

fid = open(filename, 'wb')
cPickle.dump(m, fid)
fid.close()

fid = open(filename, 'rb')
m = cPickle.load(fid)
labels_pred, acc, probs = svm_predict([-1, 1], [[1, 1, 1], [0, 0, 1]], m)

print labels_pred, acc, probs

Answer 1:

只要使用LIBSVM的加载和保存功能

svm_save_model('libsvm.model', m)
m = svm_load_model('libsvm.model')

这是包含在LIBSVM包的蟒蛇目录中的README文件。 它似乎有功能比网站更好的说明。



文章来源: How can I save a LibSVM python object instance?