Day14,主要完成第三章分类的学习
熟悉mnist数据集调用
训练一个二分类器
说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。
在第一章我们提到过最常用的监督学习任务是回归(用于预测某个值)和分类(预测某个类别)。
在第二章我们探索了一个回归任务:预测房价。我们使用了多种算法,诸如线性回归,决策树,和随机森林(这个将会在后面的章节更详细地讨论)。
在第三章,作者将转到分类任务上。
MNIST
使用 MNIST 这个数据集,它有着 70000 张规格较小的手写数字图片,由美国的高中生和美国人口调查局的职员手写而成。
这相当于机器学习当中的“Hello World”,人们无论什么时候提出一个新的分类算法,都想知道该算法在这个数据集上的表现如何。
机器学习的初学者迟早也会处理 MNIST 这个数据集。
在之前的文字中,我们使用Tensorflow加载mnist数据,原文中代码如下,但是使用后会报500的错误。在这里仍使用tf的mnist数据。
sklearn数据集中包括三个结构,在anaconda中可以直接通过mnist调用查看,在pycharm中则通过名称调用
DESCR键描述数据集
data键存放一个数组,数组的一行表示一个样例,一列表示一个特征
target键存放一个标签数组
在tensorflow的mnist数据集中,包括train和test两类数据,类似接口调用的方式。
绘制相应图片
打乱训练集
使用numpy的random.permutation()打乱训练集。
这可以保证交叉验证的每一折都是相似(你不会期待某一折缺少某类数字)。
而且,一些学习算法对训练样例的顺序敏感,当它们在一行当中得到许多相似的样例,这些算法将会表现得非常差。打乱数据集将保证这种情况不会发生。
训练一个二分类器
在里面只对图片为5的进行分类,然后输出判断值和图片,预测X_test[500],实际值为9。
领取专属 10元无门槛券
私享最新 技术干货