欢迎访问宙启技术站
智能推送

使用sklearn.datasets.samples_generatormake_blobs()函数产生随机数据集

发布时间:2023-12-24 04:35:59

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_example](https://i.imgur.com/qDYY8yU.png)

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