[机器学习-sklearn]K-means之make_blobs聚类数据生成器

make_blobs介绍

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

make_blobs方法:

sklearn.datasets.make_blobs(n_samples=100, n_features=2,centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)[source]

其中:
n_samples 是待生成的样本的总数。
n_features 是每个样本的特征数。
centers 表示类别数。
cluster_std 表示每个类别的方差,例如我们希望生成2类数据,其中一类比另一类具有更大的方差,可以将cluster_std设置为[1.0,3.0]。
random_state 相同的值具有可重现性,也就是所指定一个相同的,以便于下次重现

更多参数请参考官网连接

例:生成3类数据用于聚类(100个样本,每个样本有2个特征)

from sklearn.datasets import make_blobs
from matplotlib import pyplot

data,target=make_blobs(n_samples=100,n_features=2,centers=3)
print(data)
print(target)

# 在2D图中绘制样本,每个样本颜色不同
pyplot.scatter(data[:,0],data[:,1],c=target);
pyplot.show()

[[ 8.16950469 -0.8515653 ]
 [ 3.89178889 -0.74819172]
 [10.39197688 -1.03606434]
 [ 9.47585566 -2.54015823]
....
 [ 1.03335689  5.44084402]
 [ 2.48195306 -0.58851947]
 [10.62815561 -0.26532214]]
[0 2 0 0 1 1 1 2 0 2 2 1 0 2 1 2 2 0 2 1 2 2 1 2 0 2 2 0 2 0 0 2 2 1 1 2 0
 1 1 1 0 0 0 2 1 2 2 0 1 0 1 1 2 0 1 1 1 2 0 1 0 1 2 0 1 0 2 1 2 0 2 2 0 0
 1 0 2 0 0 2 1 2 1 0 1 0 0 1 0 2 2 1 0 0 1 1 1 1 2 0]

在这里插入图片描述

为每个类别设置不同的方差,只需要在上述代码中加入cluster_std参数即可:

from sklearn.datasets import make_blobs
from matplotlib import pyplot

data,target=make_blobs(n_samples=100,n_features=2,centers=3,cluster_std=[1.0,3.0,2.0])

#在2D图中绘制样本,每个样本颜色不同
pyplot.scatter(data[:,0],data[:,1],c=target);
pyplot.show()

这里就可以看出方差反映的数据的离散程度
在这里插入图片描述

固定中心的位置

from sklearn.datasets import make_blobs
from matplotlib import pyplot

data, target = make_blobs(n_samples=100, n_features=2, centers=[[-4,-4],[0,0],[4,4]])

data =  np.concatenate((data, [[-4,-4],[0,0],[4,4]]), axis=0)
target =  np.concatenate((target, [4,5,6]))
# 在2D图中绘制样本,每个样本颜色不同
pyplot.scatter(data[:, 0], data[:, 1], c=target);
pyplot.show()

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茫茫人海一粒沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值