我正在寻找一个支持支持非线性内核和一个vs-rest场景的支持向量机实现,以执行多标签分类。最好是用Python编写的,或者我可以用wrappers从Python调用。
我正在研究sklearn,有两个实现可以使用支持向量机进行分类:
sklearn.svm.LinearSVC -支持单点rest场景下的多标签分类,但它是基于lib线性的,因此只支持线性内核。
基于libsvm的sklearn.svm.SVC -支持非线性核,但是多标签分类是在一对一的缩减下完成的,它训练K (K−1) /2二进制分类器以解决K-路多类问题。
更多信息也在这里:http://scikit-learn.org/stable/modules/multiclass.html
有没有人知道其他直接支持多标签分类和非线性核的支持向量机实现?
一个可能的解决方案也可以是调整基于sklearn.svm.SVC的代码,执行1-VS-Rest,这以前是否已经尝试过?
发布于 2017-12-23 06:25:34
二元关联问题变换法使用单vs rest方法进行多标签分类。利用scikit多重学习库可以方便地实现非线性核支持向量机.下面是执行相同操作的示例python代码,其中每一行train_y都是表示多个标签的一个热向量(例如,0,0,1,0,1,0)
from skmultilearn.problem_transform.br import BinaryRelevance
from sklearn.svm import SVC
# Non-linear kernel
svm = SVC(kernel='rbf')
cls = BinaryRelevance(classifier=svm)
cls.fit(train_x, train_y)
predictions = cls.predict(test_x)https://stackoverflow.com/questions/42923851
复制相似问题