读书笔记:本章作者主要讲述了如何让计算机“学习”,即机器学习。
12.1:在机器学习领域经常使用Python的原因:Python提供了很多机器学习相关的库,我们可以通过解释器方便地使用这些功能。
在分类问题的机器学习中,我们将学习算法称为学习器,将作为学习结果得到的模型称为分类器。模型就是用于识别的机制。学习器和分类器的本质都是程序。
交叉验证是一种不断轮换编写学习器所使用的训练数据和分类器所使用的测试数据来进行机器学习的方法。
机器学习有很多不同的方法,这里要介绍的是有监督学习。有监督学习就是给计算机提供大量带正确答案的数据。
12.2支持向量机
人们已经提出了几种机器学习的学习算法。这里我们使用支持向量机,它是一种适用于分类问题的有监督学习算法。
数 据 分 类 的 数 量 称 为 分 类(class)数。一个数据所拥有的用于分类的信息称为特征量,特征量的数量称为维数。
12.3 Python交互模式的使用方法
机器学习中经常会使用编程语言Python,原因是Python中提供了包含各种机器学习相关功能的库。此外,Python是一种基于解释器的语言,这意味着我们可以用简短的程序来试验这些库的功能。本章中,我们将使用一个名为Anaconda的工具,它是一个包含Python本身和各种库的套件。
Python运行程序的方法分为两种,一种是用Python解释器对事先编写好的源代码进行解释执行的脚本模式(script mode),另一种是直接启动Python解释器,通过键盘逐行输入程序并解释执行的交互模式(interactive mode)。Python中可供程序使用的各种功能都以函数或对象的形式来提供。函数一般提供单一功能,对象一般提供复合功能。使用对象功能的语法是对象名.功能名”。Python标准的内置函数和对象是可以直接使用的,但机器学习中使用的特殊函数和对象需要通过import命令导入后使用。
12.4准备学习数据
接下来我们就以识别手写数字为主题,实际体验一下机器学习。在机器学习中,我们需要学习数据和学习器,这里使用Anaconda自带的scikit-learn库所提供的学习数据和学习器。除scikit-learn之外,我们还使用了用于绘制可视化图表的matplotlib库,这个库也是Anaconda自带的。
12.6通过机器学习识别手写数字
机器学习的步骤
(1)将学习数据和答案数据划分为训练数据和测试数据
(2)用学习算法学习训练数据并生成模型
(3)用测试数据评估模型的性能
12.7 尝试交叉验证
下面我们来尝试一下交叉验证交叉验证是一种不断轮换训练数据和测试数据来进行机器学习的方法。由此,我们可以检验学习模型的识别率是否存在因学习数据的类型而出现偏差的情况。
C语言的特点
C语言是由AT&T贝尔实验室的丹尼斯·里奇(Dennis Ritchie)于1973年开发的编程语言。C语言虽然是一种高级编程语言,但拥有可媲美汇编语言的底层操作(内存操作、位运算等)能力,这是C语言的一大特点。同样由AT&T贝尔实验室开发的UNIX操作系统,最早是用汇编语言编写的,但后来其大部分代码又重新用C语言编写,由此提高了UNIX的可移植性,使很多不同类型的计算机可以使用UNIX。UNIX系的操作系统Linux也是用C语言编写的。