https://scikit-learn.org/stable/modules/svm.html
https://sklearn.apachecn.org/docs/master/5.html 中文翻译
SVC,NuSVC,LinearSVC在一个数据集上可以实现二分类,也能多类分类
SCV和NuSVC是相似的方法,但是接受的参数设置可能有些许差异,同时两种方法的数学公式也不一样的。另一方面,LinearSVC是支持向量分类在线性核函数时的一个速度更快的实现,SVC(support vector classification)。记住 LinearSVC
不接受关键词 kernel
, 因为它被假设为线性的. 它也缺少一些 SVC
和 NuSVC
的成员(members) 比如 support_
.
多类分类:
SVC和NuSVC为多元分类实现了 one-against-one方法, 如果 n_class
是类别的数量, 那么 n_class * (n_class - 1) / 2
分类器被重构, 而且每一个分类器都从两个类别中训练数据. 为了提供与其他分类器一致的接口, decision_function_shape
选项允许聚合 “one-against-one” 分类器的结果成 (n_samples, n_classes)
的大小到决策函数:
ovo——one vs one一对一的多分类方式。
另一方面,LinearSVC实现了 One-vs-the rest的多类别策略,因此n个类别训练n个模型,如果只有两类,就只训练一个模型。
LinearSVC也实现了可选择的多分类策略,这个所谓的SVM是有Crammer和Singer设计的,可以通过选项 multi_class='crammer_singer'。实际上,one-vs-rest经常使用,因为大多数结果是相似的,而且运行时间显著减少。
libsvm的多分类原理;