官网manual详见:sklearn.datasets.make_blobs
klearn.datasets.make_blobs( n_samples=100, #样本总数
n_features=2, #每个样本的特征值总数
centers=3, #有几簇聚类数据
cluster_std=1.0, #每簇的标准差,可以设置成[1.0, 2.0, 4.0]依次依次表示每簇数据的标准差
center_box=(-10.0, 10.0),
shuffle=True,
random_state=None)
一般使用sklearn的make_blobs模块生成聚类算法使用的测试数据样本集,聚类数据样本集。
样本集:
1)n_samples:样本集中的样本总数
2)n_features:如果每个样本有2个特征数,则可以通过设置入参n_features=2即可
3)centers:如果需要有2簇(或者3簇)聚类数据,可以通过设置入参centers=2即可
4)返回的data就是样本集,data是一个n_features列的数组,data的总元素=n_samples。即一个坐标轴代表样本的一个特征
data, data_flag = make_blobs(……)
5)返回的第二个data_flag就是每个样本的标记
data, data_flag = make_blobs(……)
1.代码
# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空TOM
Talk is cheap, show me the code
Aim:使用sklearn的make_blobs模块生成聚类算法使用的测试数据,聚类数据样本集
"""
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
if __name__ == '__main__':
#待生成的样本的总数N
N = 400
#每个样本的特征数m
feature_cnt = 2
#要生成的样本中心(类别)数,或者是确定的中心点
centers = 3
#每个类别的方差,例如我们希望生成2类数据,其中一类比另一类具有更大的方差,可以将
stds = [1.0, 2.0, 4.0]
#生成的样本数据集
data = []
#样本数据集的标签
data_flag = []
#生成3簇聚类数据集,每个样本有2个特征数
data, data_flag = make_blobs(n_samples=N, n_features=feature_cnt, centers=centers, cluster_std=stds)
#显示方法1:打印数据
print('feature1:',data[:, 0])
print('feature2:',data[:,1])
print('sample flag:',data_flag)
#显示方法2:显示图形
plt.scatter(data[:, 0], data[:, 1], c=data_flag)
plt.show()
2.生成的聚类数据样本集
2.1图像显示
2.2数据集打印
runfile('C:/Users/Administrator/tom_sklearn_make_blobs.py', wdir='C:/Users/Administrator')
feature1: [ 2.54001684 5.22477454 -6.10862356 -9.44626916 -7.19535902
5.2679688 -11.42425981 -9.67999405 -5.75053619 3.41957156
5.09385822 3.63539