在动手操作一个算法的时候,可能需要自己生成数据集。Python sklearn给我们提供了一些有用的数据生成器和数据加载工具,所以就不需要我们写代码来生成数据啦。下面介绍几个大家都比较常用的数据集:
数据加载工具
这个工具下面一共有24个数据集,只要直接导入就可以使用,就像导入一个csv文件一样。
1.datasets.load_iris()这个数据集应该是最常见的了,经常看见网上博主们需要做分类的数据集时候,拿的就是这个鸢尾花数据集。
大家点击数据集的链接就可以看到鸢尾花数据集的介绍:
Classes | 3 |
Samples per class | 50 |
Samples total | 150 |
Dimensionality | 4 |
Features | real, positive |
下面是获取数据集的方法:
from sklearn import datasets
iris = datasets.load_iris()
### 打印数据集,可以看到数据集的详细信息
print(iris)
### 获取数据
X = iris.data
### 获取标签
y = iris.target
### 获取标签名称
TarName = iris.target_names
### 获取特征名称
FeaName = iris.feature_names
2.
datasets.load_boston()这个数据集应该是回归问题里面,网上博主们最常用的数据集,也就是波士顿房价数据集。大家点击数据集的链接就可以看到它的介绍了:
Samples total | 506 |
Dimensionality | 13 |
Features | real, positive |
Targets | real 5. - 50. |
下面是数据集的获取方法:
boston = datasets.load_boston()
### 打印数据集,可以看到数据集的详细信息
print(boston)
### 获取数据集
X = boston.data
### 获取目标值
y = boston.target
### 获取特征名称
FeaName = boston.feature_names
数据生成器
datasets下面一共有20个数据集生成器,相比与上面的数据集,这个里面的数据集就很简单,主要是用来对算法的结果进行可视化。它是根据参数的值来生成数据,并不像上面的数据集一样导入就可以使用。
1.datasets.make_moons
() 该函数会生成两个交叉的半圆型数据集,可以用做聚类和分类算法的数据集。具体的参数大家可以点击数据集的链接,参考官方文档。生成的图形如下图所示:
### 生成200个数据点的数据
X,y = datasets.make_moons(200)
### 可视化数据
plt.scatter(X[:,0],X[:,1], s=40, c=y, cmap=plt.cm.Spectral)
我们可以看到上面的数据分布实在是太工整了,通常我们会加上noise参数,让数据的分布没有那么工整。
### 生成数据
X,y = datasets.make_moons(200, noise=0.20)
### 可视化数据
plt.scatter(X[:,0],X[:,1], s=40, c=y, cmap=plt.cm.Spectral)
2. datasets.make_circles()该函数会生成一个大圆,然后里面包含一个小圆。
具体的参数大家可以点击数据集的链接,参考官方文档。生成的图形如下图所示:
X,y = datasets.make_circles(1000)
plt.scatter(X[:,0],X[:,1], s=40, c=y,cmap=plt.cm.Spectral)
和上面的数据集一样,为了让数据的分布没有那么工整,通常我们会加上noise参数。同时,会加上factor参数,用于控制大圆和小圆之间的间隔。
X,y = datasets.make_circles(1000, noise=0.03, factor=0.5)
plt.scatter(X[:,0],X[:,1], s=40, c=y,cmap=plt.cm.Spectral)
API链接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets