深入浅出Python机器学习
上QQ阅读APP看书,第一时间看更新

3.3.1 对数据集进行分析

在本节中,我们将使用scikit-learn内置的酒数据集来进行实验,这个数据集也包含在scikit-learn的datasets模块当中。下面我们在Jupyter Notebook中新建一个Python 3的记事本,从头开始完成这个小项目。

首先,我们要把酒的数据集载入项目中,在Jupyter Notebook中输入代码如下:

from sklearn.datasets import load_wine
#从sklearn的datasets模块载入数据集
wine_dataset = load_wine()

现在读者朋友可能会比较好奇这个酒数据集中的数据都包含些什么。实际上,使用load_wine函数载入的酒数据集,是一种Bunch对象,它包括键(keys)和数值(values),下面我们来检查一下酒数据集都有哪些键,在Jupyter Notebook中输入代码如下:

#打印酒数据集中的键
print('\n\n\n')
print('代码运行结果:')
print('==============================')
print("红酒数据集中的键:\n{}".format(wine_dataset.keys()))
print('==============================')
print('\n\n\n')

运行代码,会得到结果如图3-16所示。

图3-16 酒的数据集中的键

【结果分析】从结果中我们可以看出,酒数据集中包括数据“data”,目标分类“target”,目标分类名称“target_names”,数据描述“DESCR”,以及特征变量的名称“features_names”。

那么这个数据集中究竟有多少样本(samples),又有多少变量(features)呢?可以使用.shape语句来让Python告诉我们数据的大概轮廓,在Jupyter Notebook中输入代码如下:

#使用.shape来打印数据的概况
print('\n\n\n')
print('代码运行结果:')
print('==============================')
print('数据概况:{}'.format(wine_dataset['data'].shape))
print('==============================')
print('\n\n\n')

运行代码,会得到结果如图3-17所示。

图3-17 酒的数据集的概况

【结果分析】从图3-17中我们可以看出,酒数据集中共有178个样本,每条数据有13个特征变量。

更细节的信息,我们可以通过打印DESCR键来获得,下面我们输入代码如下:

#打印酒的数据集中的简短描述
print(wine_dataset['DESCR'])

运行代码,我们将会看到一段很长的描述,如图3-18所示。

图3-18 酒数据集的部分简短描述

【结果分析】从结果中我们可以看出,酒数据集中的178个样本被归入3个类别中,分别是class_0,class_1和class_2,其中class_0中包含59个样本,class_1中包含71个样本,class_2中包含48个样本。而从1)至13)分别是13个特征变量,包括酒精含量、苹果酸、镁含量、青花素含量、色彩饱和度等。我们先不用管每一个变量具体的含义,接下来先对数据进行一些处理。