最近看完了 Willi Richert的《机器学习系统设计》。书虽然有点薄但也比较全,内容感觉有点偏文本处理,里面介绍了一些文本处理的方法和工具。综合起来看作为机器学习入门还是挺不错的,这里就简单记一下我做的笔记,方便回顾。书中的代码可以通过它说到的网站下载,需要填写邮箱,下载链接会发送到你填的邮箱中。还看了另一本书,《视觉机器学习20讲》,感觉讲的也不错。

第二章 数据分类

由于第一章主要是介绍背景,这里就不详细介绍了,直接从第二章开始。

这一章主要介绍了一个经典的机器学习数据–iris数据集,sklearn中自带iris数据集。该数据集里的数据有四个特征(feature_name):花萼长度(sepal length),花萼宽度(sepal width),花瓣长度(petal length),花瓣宽度(petal width)。数据集是通过观测三种不同的iris得到的,分别是 Iris Setosa, Iris Versicolor, Iris Virginica。这个数据集的目的就是通过每朵花的四种特征的数值将其分到对应的类中。

范化能力的评估,交叉验证

对于iris数据,书里直接暴力分类,遍历所有可能的值,并对其分类,求出最好的正确率。这种方法竟也达到了94%的正确率,当然数据可能比较简单。接着就是提到一个很重要的概念—-交叉验证(cross-validation)。基本思想:把全部数据,分成k折(例如5折),每次拿出一折当作测试(test),剩下的用来训练(train),总共可以拿到k个不同的训练集,所以我们训练k次,计算平均正确率来当作模型的正确率。这种综合评估就是对模型范化能力的一个可靠估计。

接下来在这一章里又举了一个跟iris很类似的一个数据集seeds,不同的地方主要是这是一个小麦种子的数据集,里面的特征有7个。采用自己编写的knn对他进行分类,使用10折交叉验证达到了88%的正确率。