机器学习的第一步是准备数据,好的数据能帮助我们加深对机器学习算法的理解。
不管是在学习还是实际工作中,准备数据永远是一个枯燥乏味的步骤。scikit-learn
库显然看到了这个痛点,才在它的数据加载子模块中为我们准备了直接可用的数据集。
在它的数据加载子模块中,提供了6种直接可用来学习算法的经典数据集,被称为 Toy Datasets
,也就是本篇准备介绍的玩具数据集。
1. 鸢尾花数据集
著名的鸢尾花数据集,最初由R.A.费舍尔爵士使用。数据集取自费舍尔的论文。
1.1. 加载方式
from sklearn.datasets import load_iris
# 加载后的数据集 ds 是一个字典
ds = load_iris()
ds
直接的返回的字典中,除了数据还包含一些描述数据的元信息。如果想要直接得到用于分析的数据,加载时设置如下的参数:
# as_frame 参数将数据部分设为pandas的Dataframe格式
# return_X_y 参数表示返回 (data, target) 格式
ds = load_iris(as_frame=True, return_X_y=True)
ds[0] # Dataframe格式的数据
1.2. 数据概况
鸢尾花数据集是一个简单的多级分类数据集。
概况 | 说明 |
---|---|
样本分类 | 3种 |
每种分类样本数 | 50 |
样本总数 | 150 |
样本维度 | 4 |
样本特征 | real , positive 两种 |
1.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 分类算法:例如,逻辑回归、朴素贝叶斯、决策树、支持向量机、神经网络等。
- 回归算法:例如,线性回归、决策树、支持向量回归等。
- 聚类算法:例如,K-Means、层次聚类等。
2. 糖尿病数据集
这是一个可用于回归任务的糖尿病数据集。
2.1. 加载方式
from sklearn.datasets import load_diabetes
# 与鸢尾花数据集加载相比,多了个 scaled 参数
# scaled=False时,返回特征变量的原始数据
# scaled=True时,则以均值为中心,进行缩放
ds = load_diabetes(as_frame=True, return_X_y=True, scaled=False)
ds[0]
2.2. 数据概况
概况 | 说明 |
---|---|
样本总数 | 442 |
样本维度 | 10 |
特征 | -.2 < x < .2 实数 |
目标 | 25 - 346 整数 |
2.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 回归算法:例如,线性回归、岭回归、Lasso回归、支持向量回归等。
- 特征选择算法:例如,递归特征消除、L1正则化等。
- 特征降维算法:例如,主成分分析(PCA)、线性判别分析(LDA)等。
- 其他相关算法:例如,模型评估、超参数调优等。
3. 手写数字数据集
这是一个用于多分类任务的数字识别数据集。
3.1. 加载方式
from sklearn.datasets import load_digits
ds = load_digits(as_frame=True, return_X_y=True)
ds[0]
3.2. 数据概况
概况 | 说明 |
---|---|
样本分类 | 10种 |
每种分类样本数 | 约180 |
样本总数 | 1797 |
样本维度 | 64 |
样本特征 | 0~16 整数 |
3.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 多分类算法:例如,K-近邻(K-NN)、支持向量机(SVM)、决策树、神经网络等。
- 特征选择算法:例如,递归特征消除、L1正则化等。
- 特征降维算法:例如,主成分分析(PCA)、线性判别分析(LDA)等。
- 其他相关算法:例如,模型评估、超参数调优等。
需要注意的是,由于这个数据集的特征是图像像素值,因此不太适合用于非图像处理的机器学习算法。
4. 林纳鲁德数据集
这是一个用于多变量回归任务的数据集。
4.1. 加载方式
from sklearn.datasets import load_linnerud
ds = load_linnerud(as_frame=True, return_X_y=True)
ds[0]
4.2. 数据概况
概况 | 说明 |
---|---|
样本总数 | 20 |
样本维度 | 3 |
特征 | 整数 |
目标 | 整数 |
4.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 回归算法:例如,线性回归、岭回归、Lasso回归、支持向量回归等。
- 特征选择算法:例如,递归特征消除、L1正则化等。
- 特征降维算法:例如,主成分分析(PCA)、线性判别分析(LDA)等。
- 其他相关算法:例如,模型评估、超参数调优等。
5. 葡萄酒数据集
这是一个用于分类任务的葡萄酒数据集
5.1. 加载方式
from sklearn.datasets import load_wine
ds = load_wine(as_frame=True, return_X_y=True)
ds[0]
5.2. 数据概况
概况 | 说明 |
---|---|
样本分类 | 3种 |
每种分类样本数 | 3个分类中的样本数分别为:59,71,48 |
样本总数 | 178 |
样本维度 | 13 |
样本特征 | 正的实数 |
5.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 分类算法:例如,逻辑回归、朴素贝叶斯、决策树、支持向量机、神经网络等。
- 特征选择算法:例如,递归特征消除、L1正则化等。
- 特征降维算法:例如,主成分分析(PCA)、线性判别分析(LDA)等。
- 其他相关算法:例如,模型评估、超参数调优等。
6. 威斯康星州乳腺癌数据集
这是一个用于分类任务的乳腺癌数据集。
6.1. 加载方式
from sklearn.datasets import load_breast_cancer
ds = load_breast_cancer(as_frame=True, return_X_y=True)
ds[0]
6.2. 数据概况
概况 | 说明 |
---|---|
样本分类 | 2种 |
每种分类样本数 | 样本数分别为:212,357 |
样本总数 | 569 |
样本维度 | 30 |
样本特征 | 正的实数 |
6.3. 用途
这个数据集可作为下列机器学习算法的测试数据:
- 分类算法:例如,逻辑回归、朴素贝叶斯、决策树、支持向量机、神经网络等。
- 特征选择算法:例如,递归特征消除、L1正则化等。
- 特征降维算法:例如,主成分分析(PCA)、线性判别分析(LDA)等。
- 其他相关算法:例如,模型评估、超参数调优等。
7. 总结
这些数据集数据量不大,但是数据具有代表性,且种类丰富。了解每种数据的特点,后续学习算法的时候,可以利用它们来实验和验证算法的使用。