SVC、NuSVC、LinearSVC都可以在一个数据集上实现多分类。
SVC和NuSVC方法类似,但是有不同的输入参数集和不同的数学表述。另一方面,linearSVC是SVC的在线性核的基础上的另一种实现,所以LinearSVC不能不能接受关键字“kernel”,只能是线性。
二分类
和别的分类器一样,三种分类器需要输入两个数组:X[n样本][n维特征](训练数据集)Y[n个标签](类标签)

from sklearn import svm
X = [[0,0], [1,1]]
Y = [0, 1]

模型学习之后可以进行预测:

clf = svm.SVC()
clf.fit(X,y)
clf.predict([[2.,2.]])

SVM的决策函数依赖于训练数据集的支持向量子集。这些属性可以通过下面函数进行查看

#get support vector
clf.support_vectors_
#get indices of support vectors
clf.support_
#get number of support vectors for each class
clf.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 = 6
print 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_probapredict_log_proba可以对类别概率进行评估。
Wu, Lin and Weng, “Probability estimates for multi-class classification by pairwise coupling”, JMLR 5:975-1005, 2004.
不均衡问题
我们可以通过class_weightsample_weight两个关键字实现对特定类别或者特定样本的权重调整。

sklearn学习笔记(3)svm多分类相关推荐

  1. SKlearn学习笔记——XGBoost

    SKlearn学习笔记--XGBoost 1. 概述 1.1 xgboost库与XGB的sklearn API 1.2 XGBoost的三大板块 2. 梯度提升树 2.1 提升集成算法:重要参数 n_ ...

  2. TensorFlow学习笔记——车牌标志识别分类

    TensorFlow--车牌标志识别分类学习笔记 本博客的内容是:在 BlackWalnut Labs 完成车牌标志识别实验的学习笔记 其中主要的部分是 BlackWalnut Labs 的实验过程介 ...

  3. 技术小白的AI产品经理成长之路第一步(吴恩达《深度学习工程师》学习笔记2.1二分分类)希望可以给同为技术小白的同学一点深参考

    <背景> 作为一个在市场营销岗位多年的技术小白,突然某天想到自己曾经的产品梦正在伤感之余(话说曾经因为舍不得在营销岗多年的经验,因此在三年前想要转行却一直未能成功,直到现在移动端红利期已过 ...

  4. python sklearn学习笔记大全(常见代码速查)

    skleran是python中常见的机器学习包,整理下笔记.方便查询. 官方文档链接:sklearn官方英文文档 常见模型 from sklearn.linear_model import Linea ...

  5. sklearn学习笔记

    1.监督学习 1.1.广义线性模型 1.1.1.普通最小二乘法 class sklearn.linear_model.LinearRegression(fit_intercept=True, norm ...

  6. Sklearn学习笔记3 model_selection模块

    3 Model selection and evaluation 1 sklearn.model_selection: Model Selection 1.1 Splitter Classes(分组) ...

  7. DataWhale sklearn学习笔记(一)

    线性回归 数据生成: 生成数据的思路是设定一个二维的函数(维度高了没办法在平面上画出来),根据这个函数生成一些离散的数据点,对每个数据点我们可以适当的加一点波动,也就是噪声,最后看看我们算法的拟合或者 ...

  8. 数据挖掘导论学习笔记 第五章 分类算法

    5.1基于规则的分类器 基于规则的分类器的规则用析取范式R=(r1∨r2∨⋯∨rk)R=(r_1\lor r_2 \lor \cdots \lor r_k)R=(r1​∨r2​∨⋯∨rk​)表示.R称 ...

  9. python之sklearn学习笔记

    sklearn介绍 scikit-learn是数据挖掘与分析的简单而有效的工具. 依赖于NumPy, SciPy和matplotlib. 它主要包含以下几部分内容: 从功能来分: classifica ...

  10. 深度学习笔记13_猫狗分类案例 - 从头开始训练一个神经网络

    在小型数据集上从头开始训练一个卷积神经网络 小型数据集的模型构建的策略 小型数据集:"很少的"样本可能是几百张图像,也可能是几万张图像. 接下来的示例中,主要用来猫狗分类:4000 ...

最新文章

  1. 电商网站前台与后台系统架构
  2. 阿里云服务器开启端口
  3. Java中常用的设计模式【模板模式】
  4. CAD输出pdf显示失真
  5. ImageJ开发插件注意事项
  6. 在线caj免费转换Word格式
  7. Centos7配置ssh、rsh免密互信集群服务
  8. 学习笔记-《python程序员面试宝典》-基础知识-数据结构-编程思维(一)
  9. 硬件设计分享-⑨电感与磁珠
  10. jdbc连接mysql数据库,设置字符集编码
  11. studio 不能输入中文
  12. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  13. 信息安全复习四:置换密码乘积密码隐写术
  14. 关于ARM的内核架构
  15. word公式编号及交叉引用技巧
  16. python中gensim库详解
  17. 特斯拉AI Day:车企能造好机器人吗?
  18. SCI与EI检索是什么意思,包括哪些专业?
  19. Java程序员的认证--SUN认证
  20. java lombok.getter_Lombok注解@Getter @Setter详解

热门文章

  1. 【JXTA概念介绍(翻译)】
  2. 啦啦外卖独立版配送小程序(黑色UI风格)
  3. Hadoop安装教程(Hadoop3.3.1版本),centos7系统,避免踩坑
  4. 如何使用EDI系统解决对接多工厂的问题?
  5. Yahoo 股票数据抓取
  6. aria2,破解限速的傻瓜式教程
  7. java完全自学手册 pdf_fortran教程下载
  8. 简单易学的机器学习算法——极限学习机(ELM)
  9. AMD IOMMU与Linux (2) -- IVRS及AMD IOMMU硬件初始化
  10. NB-IOT之一个完整的BC95 UDP从开机到数据发送接收过程