使用sklearn.datasets.samples_generatormake_blobs()函数产生随机数据集
sklearn.datasets.samples_generator.make_blobs()函数是sklearn库中一个生成随机数据集的函数,它可以生成多个高斯分布的点群,这些点群可以用于聚类算法的测试或者可视化等方面。下面我将为你详细介绍该函数的使用方法,并给出一个具体的例子。
make_blobs()函数的语法如下:
make_blobs(n_samples=100, n_features=2, centers=None, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)
参数说明:
- n_samples:生成的样本点的总数,默认为100。
- n_features:生成的样本点的特征数,默认为2。
- centers:样本点的中心,默认为None,表示生成一个随机的中心。
- cluster_std:样本点的标准差,默认为1.0。
- center_box:样本点的边界,默认为(-10.0, 10.0)。
- shuffle:是否打乱样本点的顺序,默认为True。
- random_state:随机种子,默认为None。
现在我们来看一个具体的例子,假设我们要生成一个含有3个点群的数据集,每个点群有200个样本点,这些样本点的特征数为2,中心位置分别为(0,0),(5,5)和(10,10),标准差为1.5。我们还希望将生成的数据集打乱顺序。
首先我们需要导入相关的库:
from sklearn.datasets.samples_generator import make_blobs import matplotlib.pyplot as plt
接下来我们就可以根据上面的条件来生成数据集了,并将生成的数据集可视化:
# 生成数据集 X, y = make_blobs(n_samples=600, n_features=2, centers=[(0,0), (5,5), (10,10)], cluster_std=1.5, shuffle=True) # 可视化 plt.scatter(X[:, 0], X[:, 1], c=y) plt.show()
运行上述代码,我们就可以得到一个包含三个点群的数据集,如下图所示:

从这个例子中我们可以看到,make_blobs()函数能够生成符合我们要求的随机数据集,我们可以根据自己的需要设置样本点的数量、特征数、中心位置、标准差等参数。这个函数在机器学习算法的测试、可视化等方面都非常有用。
