机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

这个例子将用图形表示不同分类器的分类概率。所谓“分类概率”,是指某个数据点属于各个类别的概率。将所有数据点属于任何类的概率,用颜色深浅表示,作出分类概率图。

在这里,我们使用一个三类的数据集,分别用支持向量机(SVC)、L1 and L2惩罚的Logistic回归和高斯过程分类。默认情况下,线性SVC并不是一个概率分类器,但是可以通过设置参数probability=True改变。具有One v.s. Rest的Logistic回归并不是一个多类别分类器,因此,在分隔类2,类3时要比其它分类器复杂些。

实例详解

首先,导入必需的库。

print(__doc__)# Author: Alexandre Gramfort <alexandre.gramfort@inria.fr>
# License: BSD 3 clauseimport matplotlib.pyplot as plt
import numpy as npfrom sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.gaussian_process import GaussianProcessClassifier
from sklearn.gaussian_process.kernels import RBF
from sklearn import datasets

本例使用的是鸢尾花数据集iris, 并且只用前2个特征作图。

iris = datasets.load_iris()
X = iris.data[:, 0:2]  # we only take the first two features for visualization
y = iris.targetn_features = X.shape[1]

定义不同的分类器,它们是:

  • L1惩罚的Logistic回归

  • L2惩罚的多类Logistic回归

  • L2惩罚的二类Logistic回归

  • 线性SVC

  • 高斯过程分类GPC

C = 10
kernel = 1.0 * RBF([1.0, 1.0])  # for GPC# Create different classifiers.
classifiers = {'L1 logistic': LogisticRegression(C=C, penalty='l1',solver='saga',multi_class='multinomial',max_iter=10000),'L2 logistic (Multinomial)': LogisticRegression(C=C, penalty='l2',solver='saga',multi_class='multinomial',max_iter=10000),'L2 logistic (OvR)': LogisticRegression(C=C, penalty='l2',solver='saga',multi_class='ovr',max_iter=10000),'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0),'GPC': GaussianProcessClassifier(kernel)
}n_classifiers = len(classifiers)

画出分类概率图。


plt.figure(figsize=(3 * 2, n_classifiers * 2))
plt.subplots_adjust(bottom=.2, top=.95)xx = np.linspace(3, 9, 100)
yy = np.linspace(1, 5, 100).T
xx, yy = np.meshgrid(xx, yy)
Xfull = np.c_[xx.ravel(), yy.ravel()]for index, (name, classifier) in enumerate(classifiers.items()):classifier.fit(X, y)y_pred = classifier.predict(X)accuracy = accuracy_score(y, y_pred)print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100))# View probabilities:probas = classifier.predict_proba(Xfull)n_classes = np.unique(y_pred).sizefor k in range(n_classes):plt.subplot(n_classifiers, n_classes, index * n_classes + k + 1)plt.title("Class %d" % k)if k == 0:plt.ylabel(name)imshow_handle = plt.imshow(probas[:, k].reshape((100, 100)),extent=(3, 9, 1, 5), origin='lower')plt.xticks(())plt.yticks(())idx = (y_pred == k)if idx.any():plt.scatter(X[idx, 0], X[idx, 1], marker='o', c='w', edgecolor='k')ax = plt.axes([0.15, 0.04, 0.7, 0.05])
plt.title("Probability")
plt.colorbar(imshow_handle, cax=ax, orientation='horizontal')plt.show()

精彩内容,请关注微信公众号:统计学习与大数据

【Python实例第15讲】分类概率图相关推荐

  1. Python实例之CIFAR-10数据集分类

    目录 作者介绍 数据集介绍 代码实现 Reference 作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究方向:机器视觉与人工智能. 电子邮件:sha ...

  2. shell实例第15讲:俄罗斯方块游戏

    运行结果图: #!/bin/bash #作者:魏波 #时间:2017.02.04APP_NAME="${0##*[\\/]}" APP_VERSION="1.0" ...

  3. Python实例15:霍兰德人格分析雷达图

    Python实例15:霍兰德人格分析雷达图 雷达图是多特性直观展示的重要方式: 霍兰德认为:人格兴趣与职业之间应有一种内在的对应关系: 人格分类:研究型.艺术型.社会型.企业型.传统型.现实型: 职业 ...

  4. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣

    前几天写的<Python实例:分析豆瓣影片评论Ver 1.0版本>文章中,关于爬取数据过频繁导致IP被封禁的事情让我对豆瓣数据的爬取中断了.忽然想到之前有写过关于关于使用selenium库 ...

  5. python快速入门精讲_Python快速入门精讲

    基础入门篇 第0章从零开始3 0.1克服编程恐惧3 0.2如何写出好程序4 0.3为什么选择Python5 0.4Python的发展和应用6 0.5一些建议8 0.6多平台搭建Python开发环境10 ...

  6. 在python中浮点数怎样转整数_python 浮点数 转 整数python函数每日一讲 - all()

    W WW.002pc .COM对<python 浮点数 转 整数python函数每日一讲 - all()>总结来说,为我们python培训很实用. all(iterable) 版本:该函数 ...

  7. 【数据分析师-python基础】python基础语法精讲

    python基础语法精讲 1 从数字开始 1.1 理解整数.浮点数.复数几种类型对象 1.2 掌握运算及其相关的常用函数 2 变量.表达式和语句 2.1 变量作用及定义的方法 2.2 变量命名原则和习 ...

  8. knn算法实例python_kNN算法及其Python实例

    2017 September 10 kNN kNN算法及其Python实例 在2006年12月召开的 IEEE 数据挖掘国际会议上(ICDM, International Conference on ...

  9. python写文件读文件-Python 实例:读写文件

    原标题:Python 实例:读写文件 读写文件是最常见的IO操作.内置了读写文件的函数,用法和的读写文件非常类似.在磁盘上读写文件的功能都是由提供的,现代不允许普通的程序直接操作磁盘,所以,读写文件就 ...

  10. python教程实例-Python实例教程

    转自:http://codingdict.com/article/9026 Python 100例-01 题目: 输有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? Python 1 ...

最新文章

  1. git clone的时候报error: RPC failed; result=18错误
  2. 李永乐线性代数手写笔记-向量
  3. 64位百度云 catia v6_逃狱兄弟百度云资源已更新,1080P高清资源分享64
  4. Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
  5. Git之深入解析高级合并
  6. 随机生成 字体大小--转
  7. zookeeper 分布式锁服务
  8. 操作系统hpf算法事例_操作系统中常见算法汇总
  9. Docker安装elasticsearch 7.7.0
  10. Redis Cluster集群的搭建与实践[转]
  11. C#学习常用方法(3000)---Foreach ,in
  12. 搭建LINUX BIND实现DNS解析
  13. Android RecyclerView DiffUtil
  14. host-only局域网络
  15. Powerpoint中VBA编程技巧
  16. 全国网络安全等级保护测评机构推荐目录
  17. db4o php,db4o官方停止支持及面向对象数据库的一些感想
  18. ARINC 429总线学习资料?
  19. 在DW中如何让代码对齐?
  20. 如何在手机或平板上编写代码?

热门文章

  1. 有indexPath获取到cell对象
  2. uva 10034 Problem A: Freckles
  3. Backbox Linux简介与配置内网IP
  4. ymPrompt.js消息提示组件 详解 .
  5. web安全day40:最新版OpenVAS的安装配置
  6. 华为设备BGP中的路由控制与实验
  7. HDLM for AIX安装
  8. kotlin支持jdk1.8编译,使用Java8特性
  9. (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
  10. 设计模式(五)Prototype Pattern