点击上方蓝色字体“州的先生”选择关注公众号

Python编程应用实战,尽在掌握

这是《Python AI极简入门》第5篇

零、前言

在上一篇,我们介绍了使用sklearn库快速创建一个用于预测房价的机器学习回归模型,并通过平均绝对误差、均方差和R3分数有效地评估了这个预测模型的效果。

在本篇,我们继续介绍借助sklearn库创建用于进行分类预测的机器学习模型。

对分类问题进行预测同样属于监督学习的范畴,通过对已知数据的类别的标记,来实现对未知数据的类别的预测和判定。

常见的应用领域包括:垃圾邮件识别、垃圾短信识别、图像分类识别等等。

常见的应用算法则有:SVM(支持向量机)、K紧邻、朴素贝叶斯、随机森林等等。

下面,我们就通过Digits手写数字集来进行机器学习分类模型的介绍。

一、初探手写数字数据集

本篇选用的手写数字数据集同样来自有sklearn.datasets子模块,其由著名的UCI 机器学习库提供:

该数据集由1797个8x8图像组成。每个图像,都是手写数字。

就像上一篇导入波士顿数据集一样,我们从sklearn模块中进行导入:

接着查看数据集中包含的子方法:

与波士顿数据集类似,其提供了images、target_names、target、data、DESCR等方法。其中:

images:表示图像的原始数组;

target_names:表示图像分类中所有的数字;

target:表示图像数组对应的数字名称;

data:表示图像的一维特征数组;

DESCR:表示数据集描述信息;

从这两个数据集可以发现,sklearn的API还是挺统一和规范的,很方便进行学习和调用。接下来,我们看看每个方法中到底都是些什么。

通过查看images的形状,以及已知的图像为8×8的形状,我们可以得知,这个数据集中有1797个图像。看看其中一个图像的内容:

这就是一个图像转换成数组之后的形式,我们怎么知道这是个什么图像呢?可以借助于matplotlib模块来将图像数组还原为图像。

可能之前搭建环境的时候没有安装这个模块,我们先来安装一下:

然后引入matplotlib模块,调用imshow()方法:

可以发现,iamges中的第一个图像似乎数字0。我们继续看下面的内容。

data的target_name信息显示,我们的数据代表的数字分类类别为0到9。

数据的目标值与数据集时匹配的,最后再看看data的data:

数据量还是1797条,但是形状已经从二维的(8, 8)变成了一维的64,我们从一个具体的数据中看看:

可以发现,data.data中的数组将之前8*8的数组合成为了一个数组,这样才能方便对图像的数组运用算法进行训练和计算。那又如何将一维的图像数组还原为图像呢,通过是上面的方法,但是需要先将一维数组转换一下形状:

我们同样将数据集的特征和目标转换为pandas的DataFrame,方便各位同学理解数据集的形状:

二、分割训练测试集

同样使用sklearn提供的train_test_split方法来对数据集进行训练集和测试集的分割:

三、创建分类模型

在此,我们同样选择随机森林算法 作为机器学习模型估计器的基本算法来创建一个机器学习分类器并进行训练:

四、评估模型

在训练完成模型之后,我们同样可以使用模型的predict()方法获取到测试集的预测结果:

在面对回归模型的时候,我们可以使用平均绝对误差、均方差等方法对模型的效果进行评估,而在分类算法模型中,我们使用其他的方法进行模型效果的评估,比如:精度分类评分、召回评分等。而这些方法,也都在sklearn模块的metrics子模块下。

我们来对分类模型进行效果评估:

两种评估方法的最佳结果值都是1,看起来我们的模型准确度还是蛮高的,大家可以尝试其他的算法构建分类模型。

欢迎留言交流讨论:)

下一篇,我们将介绍构建一个聚类预测型。

python进行图像识别与分类_使用机器学习模型快速进行图像分类识别相关推荐

  1. python遥感影像地物分类_基于TensorFlow的遥感影像地物识别方法研究

    文章编号: 1674-098X(2018)04(b)-0053-02 ①作者简介: 任芳语 ( 1996, 12- ) , 女, 汉族, 黑龙江讷河人, 本科在读, 研究方向:地理信息科学与遥感图像处 ...

  2. 机器学习 预测模型_使用机器学习模型预测心力衰竭的生存时间-第一部分

    机器学习 预测模型 数据科学 , 机器学习 (Data Science, Machine Learning) 前言 (Preface) Cardiovascular diseases are dise ...

  3. python dag调度系统开发_基于机器学习的DAG调度平台

    什么是DAG? 有向无环图 树形结构:除根节点,每个节点有且仅有一个上级节点,下级节点不限.根节点没有上级节点. 图结构:每个节点上级.下级节点数不限. DAG调度平台的定义及场景 任务调度是在各行各 ...

  4. python人工智能方向面试准备_关于机器学习面试的经典题目(面试经验和建议)...

    今年年初以来,作者一直在印度找数据科学.机器学习以及深度学习领域的工作.在找工作的这三十四天里,他面试了8到10家公司,其中也包括初创公司.基于服务的公司以及基于产品的公司.作者希望他的面试经验能够为 ...

  5. python 计时器_谁能取代Python?我使用Go来部署机器学习模型的原因

    全文共1881字,预计学习时长7分钟 图源:unsplash 毋庸置疑,Python是如今最受欢迎的机器学习语言.虽然机器学习框架使用CUDA C / C ++之类的语言进行实际运算,但它们都提供了P ...

  6. go调用python脚本_谁能取代Python?我使用Go来部署机器学习模型的原因

    全文共1881字,预计学习时长7分钟 图源:unsplash 毋庸置疑,Python是如今最受欢迎的机器学习语言.虽然机器学习框架使用CUDA C / C ++之类的语言进行实际运算,但它们都提供了P ...

  7. 只能选择分卷文件的第一部分。_为机器学习模型选择正确的度量评估(第一部分)...

    作者:Alvira Swalin 编译:ronghuaiyang 导读 对不同的应用场景,需要不同的模型,对于不同的模型,需要不同的度量评估方式.本系列的第一部分主要关注回归的度量 在后现代主义的世界 ...

  8. 机器学习模型 非线性模型_调试机器学习模型的终极指南

    机器学习模型 非线性模型 You've divided your data into a training, development and test set, with the correct pe ...

  9. 公平性 机器学习_比较机器学习模型的案例研究公平性

    公平性 机器学习 COMPAS和分类器公平性 (COMPAS and classifier fairness) Recent events around the world raise many qu ...

  10. 机器学习模型的衡量指标_在机器学习模型中衡量公平性

    机器学习模型的衡量指标 In our previous article, we gave an in-depth review on how to explain biases in data. Th ...

最新文章

  1. 数据结构 之 并查集
  2. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】
  3. 无刘海的iPhone 12,苹果打算用这个方案来实现?
  4. 树状数组相关应用之区间包含问题
  5. Rhino(js的java实现组件)
  6. web打印的最佳方案
  7. VS2012 下载地址
  8. 支持USB Video Class的摄像头
  9. VelocityTracker 速度追踪
  10. 用户界面设计有效的人机交互策略_学习笔记
  11. 使用Unison 同步文件
  12. 秘密打印机涉密计算机之间,涉密打印机与涉密计算机之间采用什么方式
  13. 西门子S7-300 PLC 的50个经典问题
  14. 碰到数学归纳法,一点感受
  15. 如何查看UE的ENDC组合能力
  16. 什么是爱情——碧海青天BBS
  17. Socket网络编程详解
  18. android渠道首发规则,酷传推广手册-Android渠道首发规则.doc
  19. 数据泄露典型判例分析报告
  20. 计算机程序的各个段【数据段、代码段等】

热门文章

  1. win2008服务器系统玩红警,WIN10 64位系统完美运行红色警戒2教程
  2. 如何求100万长度的数组的中间值元素,采用定向数组只需6个毫秒的算法
  3. url中文转码问题(python)
  4. oracle中分组函数取百分比,Oracle之组函数、分组统计-Oracle
  5. 浅析机器学习算法的应用场景!
  6. 2019年python爬虫-我破解了中文裁判网数据挖掘-反爬技术哪些事情
  7. 谷歌浏览器任务栏图标变白解决办法
  8. 基于无线发射接收物体远离报警器的设计
  9. 【中科院】分子生物学-朱玉贤第四版-笔记-第5-6讲 转录
  10. Kotlin for Android (let、with、run、apply、also函数)