无法在Python中为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',\

我想对从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',\
            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),但它仍然给出同样的错误。我不知道。非常感谢您的澄清。