无法在Python中为mlpy.LibSvm子类
我想对从mlpy机器学习包导出的LibSvm对象类进行子类化:无法在Python中为mlpy.LibSvm子类,python,libsvm,Python,Libsvm,我想对从mlpy机器学习包导出的LibSvm对象类进行子类化: from mlpy import MaximumLikelihoodC, LibSvm class Svm(LibSvm): def __init__(self,Gs,ls): self._K = ls.shape[1] self._Gs = Gs self._N = Gs.shape[1] self._ls = ls LibSvm.__init__('c_svc','rbf',\
from mlpy import MaximumLikelihoodC, LibSvm
class Svm(LibSvm):
def __init__(self,Gs,ls):
self._K = ls.shape[1]
self._Gs = Gs
self._N = Gs.shape[1]
self._ls = ls
LibSvm.__init__('c_svc','rbf',\
gamma=1.0/self._N,C=100,probability=True)
当我调用构造函数时,例如
svm = Svm(Gs,ls)
解释器忽略myinit,并执行LibSvm的init方法,给出一个错误
svm = SVM(Gs,ls)
File "libsvm.pyx", line 146, in mlpy.libsvm.LibSvm.__cinit__ mlpy/libsvm/libsvm.c:1803)
ValueError: invalid svm_type
使用相同的语法对MaximumLikelihoodC进行子类化没有问题。在C中实现的Python类不能进行子类化,除非它们是专门为C设计的,请参阅
从错误消息的外观来看,似乎很确定它是用C实现的,我希望作者没有投入额外的工作使它成为子类。这应该是LibSvm。uu init_uu(self,'C_svc','rbf',\gamma=1.0/self。_N,C=100,probability=True),但它仍然给出同样的错误。我不知道。非常感谢您的澄清。