当前位置: 代码迷 >> 综合 >> 如何使用 sklearn 快速创造出我们所需的数据?
  详细解决方案

如何使用 sklearn 快速创造出我们所需的数据?

热度:27   发布时间:2023-12-15 05:49:58.0

1. make_blobs :聚类数据

sklearn 中的 make_blobs方法常被用来生成聚类算法的测试数据,直观地说,make_blobs会根据用户指定的特征数量、中心点数量、范围等来生成几类数据,这些数据可用于测试聚类算法的效果。

  • 参数

    n_samples 是待生成的样本的总数。
    n_features 是每个样本的特征数,即维度(默认值=2)
    centers 表示类别数。
    cluster_std 表示每个类别的方差,例如我们希望生成2类数据,其中一类比另一类具有更大的方差,可以将cluster_std设置为[1.0,3.0]。(也可以以比例的形式)
    在这里插入图片描述

  • 返回值

在这里插入图片描述
返回(多维)特征 X,以及对应的标签 y。

1.1 生成二维数据

from sklearn.datasets import make_blobsX, y = make_blobs(n_samples=300, centers=4,random_state=0, cluster_std=1.0)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='rainbow');

在这里插入图片描述

虽然是聚类数据生成器,但其实也可以生成一维数据(设置n_features=2)

生成一维数据

  • 模块导入
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
from sklearn.datasets import make_blobs
  • 生成数据
X, y = make_blobs(n_samples=500, n_features=1, centers=3, cluster_std=0.5, random_state=0)plt.scatter(X, y, c=y) 

注意:此时 x 和 y 的数值形成了点坐标的(x,y),而不是像拥有两个特征的X(x1, x2

参考

sklearn.datasets.make_blobs

  相关解决方案