sklearn学习笔记(3)svm多分类
来源:互联网 发布:手机端淘宝怎么装修 编辑:程序博客网 时间:2024/05/22 01:51
SVC、NuSVC、LinearSVC都可以在一个数据集上实现多分类。
SVC和NuSVC方法类似,但是有不同的输入参数集和不同的数学表述。另一方面,linearSVC是SVC的在线性核的基础上的另一种实现,所以LinearSVC不能不能接受关键字“kernel”,只能是线性。
二分类
和别的分类器一样,三种分类器需要输入两个数组:X[n样本][n维特征](训练数据集)Y[n个标签](类标签)
from sklearn import svmX = [[0,0], [1,1]]Y = [0, 1]
模型学习之后可以进行预测:
clf = svm.SVC()clf.fit(X,y)clf.predict([[2.,2.]])
SVM的决策函数依赖于训练数据集的支持向量子集。这些属性可以通过下面函数进行查看
#get support vectorclf.support_vectors_#get indices of support vectorsclf.support_#get number of support vectors for each classclf.n_support_
多分类
SVC和NuSVC实现“1v1“的方法进行多分类(Knerr et al,1990)。如果n_class是类别的数量,那么需要建立n*n/2个分类器,desision_function_shape选项允许集成“1v1”分类器来刻画(n_samples,n_features)
clf = svm.SVC(decision_function_shape='ovo')clf.fit(X, Y)dec = clf.decision_function([[1]])print dec.shape[1] # 4 classes: 4*3/2 = 6print clf.predict([[1]])clf.decision_function_shape = "ovr"dec = clf.decision_function([[1]])print dec.shape[1]print clf.predict([[2.4]])
同时,LinearSVC也实现了“one vs the rest”多分类策略。
lin_clf = svm.LinearSVC()lin_clf.fit(X,Y)dec = lin_clf.decision_function([[3]])print dec.shape[1]print lin_clf.predict(2.4)
评分和概率
SVC方法decision_function给每个样本中的每个类一个评分,当我们将probability设置为True之后,我们可以通过predict_proba和predict_log_proba可以对类别概率进行评估。
Wu, Lin and Weng, “Probability estimates for multi-class classification by pairwise coupling”, JMLR 5:975-1005, 2004.
不均衡问题
我们可以通过class_weight和sample_weight两个关键字实现对特定类别或者特定样本的权重调整。
- sklearn学习笔记(3)svm多分类
- python-sklearn学习笔记(1)svm
- SVM学习笔记及sklearn实现
- 『sklearn学习』不同的 SVM 分类器
- scikit-learn svm初探 分类:机器学习 Sklearn
- sklearn学习笔记(二)——最近邻分类
- sklearn,SVM 和文本分类
- 利用sklearn 实现SVM分类
- sklearn之SVM二分类
- 机器学习 SVM sklearn
- sklearn之svm学习
- 使用sklearn中svm做多分类时难点解惑
- sklearn通过OneVsRestClassifier实现svm.SVC的多分类
- SVM学习(六):将SVM用于多类分类
- SVM学习(六):将SVM用于多类分类
- SVM学习(六):将SVM用于多类分类
- sklearn svm实现文本分类 入门
- sklearn学习——SVM
- 43_面向对象_16_final_修饰变量_方法_类
- 6.6专利
- 获取OpenCV中RotatedRect的绝对角度
- 云Linux服务器CentOS 6.8安装配置mysql5.1.73详细教程。
- maven 2
- sklearn学习笔记(3)svm多分类
- idea中的java文件有小红叉报错
- macOS系统下搭建Android开发环境
- Java8 HashMap原理
- 操作系统刷题(四)
- PHP5.6对命名空间的扩展,use可以导入函数与常量空间
- 面向对象的三大特性
- MySQL 常用函数
- 【LeetCode】11. Container With Most Water