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

Python中生成随机的make_blobs()数据点和噪声

发布时间:2023-12-11 12:07:09

在Python中,我们可以使用make_blobs()函数从高斯分布中生成随机的数据点,并添加一定程度的噪声。make_blobs()函数是scikit-learn库中的一个函数,用于生成聚类算法的人工数据集。

make_blobs()函数的调用方式如下:

make_blobs(n_samples=100, n_features=2, centers=3, cluster_std=1.0, random_state=None)

参数说明:

- n_samples:生成的数据点个数,默认为100个。

- n_features:生成的数据点的特征个数,默认为2个。

- centers:数据点的中心个数,默认为3个。

- cluster_std:每个类别的标准差,默认为1.0。

- random_state:随机种子,默认为None。

下面是一个使用make_blobs()函数生成数据点和噪声的例子:

import numpy as np
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成数据点和噪声
X, y = make_blobs(n_samples=1000, n_features=2, centers=3, cluster_std=1.0, random_state=42)

# 添加噪声
noise = np.random.uniform(low=-10, high=10, size=X.shape)
X_with_noise = X + noise

# 绘制数据点和噪声
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis', alpha=0.5, label='Data')
plt.scatter(X_with_noise[:, 0], X_with_noise[:, 1], c=y, cmap='viridis', alpha=0.5, label='Data with Noise')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()

在上面的例子中,我们生成了1000个数据点,每个数据点有2个特征,总共有3个中心点,标准差为1.0。然后我们使用np.random.uniform()函数生成了一个与原始数据维度相同的噪声,并将其与原始数据相加。最后使用matplotlib库绘制了原始数据点和添加噪声后的数据点。

这是生成随机的make_blobs()数据点和噪声带的一个例子。通过调整参数,我们可以控制生成数据的个数、特征的个数、中心点的个数以及噪声的大小,以满足不同的需求。