机器学习是关于使模型适应数据。出于这个原因,我们首先展示如何表示数据以便计算机理解。
在本章的开头,我们引用了 Tom Mitchell 对机器学习的定义:“适定学习问题:一个计算机程序被称为从经验 E 中学习关于某些任务 T 和某些性能度量 P,如果它在 T 上的性能,为由 P 衡量,随着经验 E 改进。” 数据是机器学习的“原材料”。它从数据中学习。在 Mitchell 的定义中,“数据”隐藏在“体验 E”和“绩效衡量 P”这两个术语之后。如前所述,我们需要标记数据来学习和测试我们的算法。
但是,建议您在开始训练分类器之前先熟悉数据。
Numpy 提供了理想的数据结构来表示您的数据,而 Matplotlib 为可视化您的数据提供了巨大的可能性。
在下面,我们想展示如何使用sklearn
模块中的数据来做到这一点。
虹膜数据集,机器学习的“Hello World”
你看到的第一个程序是什么?我敢打赌,这可能是一个用某种编程语言发出“Hello World”的程序。很可能我是对的。几乎所有关于编程的介绍性书籍或教程都以这样的程序开头。这种传统可以追溯到 1968 年 Brian Kernighan 和 Dennis Ritchie 合着的“C 编程语言”一书!
您将在机器学习介绍性教程中看到的第一个数据集是“Iris 数据集”的可能性同样很高。鸢尾花数据集包含来自 3 个不同物种的 150 朵鸢尾花的测量结果:
- 鸢尾花,
- 变色鸢尾,和
- 鸢尾花-弗吉尼亚。
鸢尾花
变色鸢尾
鸢尾花
鸢尾花数据集因其简单性而经常被使用。该数据集包含在 scikit-learn 中,但在深入研究 Iris 数据集之前,我们将查看 scikit-learn 中可用的其他数据集。
使用 Scikit-learn 加载虹膜数据
例如,scikit-learn 有一组非常简单的关于这些鸢尾花的数据。数据包括以下内容:
-
鸢尾花数据集中的特征:
- 萼片长度厘米
- 萼片宽度厘米
- 花瓣长度厘米
- 花瓣宽度厘米
-
要预测的目标类别:
- 鸢尾花
- 变色鸢尾
- 鸢尾花
scikit-learn
嵌入 iris CSV 文件的副本以及帮助函数以将其加载到 numpy 数组中:
from sklearn.datasets import load_iris
iris = load_iris ()
结果数据集是一个Bunch
对象:
类型(虹膜)
输出:
sklearn.utils.Bunch
您可以使用以下方法查看此数据类型可用的内容keys()
:
虹膜。键()
输出:
dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])
Bunch 对象类似于字典,但它还允许访问属性样式中的键:
打印(虹膜[ “target_names” ])
打印(虹膜。target_names )
输出:
['setosa''杂色''弗吉尼亚']
['setosa''杂色''弗吉尼亚']
每个样本花的特征存储在data
数据集的属性中:
n_samples , n_features = iris 。数据。形状
打印(“样品数