sklearn中的make_blobs的用法

make_blobs(n_samples=100, n_features=2, *, centers=None, cluster_std=1.0,
               center_box=(-10.0, 10.0), shuffle=True, random_state=None,
               return_centers=False)
  • n_features表示每一个样本有多少特征值
  • n_samples表示样本的个数
  • centers是聚类中心点的个数,可以理解为label的种类数
  • random_state是随机种子,可以固定生成的数据
  • cluster_std设置每个类别的方差
#导⼊入需要的模块和库
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_blobs

#建立数据集
class_1 = 500
class_2 = 500 #两个类别分别设定500个样本
centers = [[0.0, 0.0], [2.0, 2.0]] #设定两个类别的中心
clusters_std = [0.5, 0.5] #设定两个类别的方差
X, y = make_blobs(n_samples=[class_1, class_2],
                  centers=centers,
                  cluster_std=clusters_std,
                  random_state=0, shuffle=False)

Xtrain, Xtest, Ytrain, Ytest = train_test_split(X,y
                                                ,test_size=0.3
                                                ,random_state=420)

#去除列表中重复的元素,并按照由大到小返回一个新的无重复元素的列表
print(np.unique(Ytrain))
print((Ytrain==1).sum())
print((Ytrain==1).sum()/Ytrain.shape[0])

#归一化
mms = MinMaxScaler().fit(Xtrain)
Xtrain_ = mms.transform(Xtrain)
Xtest_ = mms.transform(Xtest)

 

'''创建训练的数据集'''
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
data, label = make_blobs(n_features=2, n_samples=10000, centers=4, random_state=1218, cluster_std=[0.1,0.2,0.4,0.3])
print(data.shape)
print(label.shape)
plt.scatter(x=data[:,0],y=data[:,1])
plt.show()

sklearn中的make_blobs的用法_第1张图片

 

你可能感兴趣的:(机器学习,sklearn,python)