Scikit-learn ofrece la función sklearn.datasets.make_blobs que permite la generación de "gotas" (clusters) de datos con distribución gausiana e isotrópica.
Es posible definir el número de puntos a generar, el número de clusters, especificar los centros, la desviación estandar de los clusters generados, etc.
Por ejemplo, podemos generar dos clusters de 200 y 100 puntos cada uno, con una desviación estándar de 1.0 y 0.5 respectivamente, y centros en las coordenadas (0, 0) y (1, 1) respectivamente de la siguiente forma:
Comenzamos importando las librerías:
from sklearn.datasets import make_blobs
import seaborn as sns
Generamos los puntos con la función make_blobs:
X, y = make_blobs(n_samples = [200, 100], random_state = 0, cluster_std = [1.0, 0.5], centers = [(0, 0), (1, 1)])
Y mostramos el resultado:
fig, ax = plt.subplots(figsize = (10, 7))
sns.scatterplot(X[:, 0], X[:, 1], hue = y);