生成高斯簇,就是先用正太分布生成若干个正态分布的簇类中心,然后再次基础上吗,在对这些簇类中心进行噪音处理,就可以啦
代码实现如下:
import numpy as np import os import matplotlib.pyplot as plt X = np.random.normal(0,10,(20)) Y = np.random.normal(0,10,(20)) #plt.scatter(X,Y) #plt.show() X_train = np.random.normal(0,1,(2000)) x_train=X_train.reshape(1000,2) y_tarin=np.random.randint(0,2,1000) print(X,Y) for i in range(1000): index=np.random.randint(0,20) x_noise = np.random.normal(0,1) y_noise = np.random.normal(0,1) if index<10: y_tarin[i]=1 else: y_tarin[i]=0 x_train[i][0]=X[index]+x_noise x_train[i][1]=Y[index]+y_noise print(x_train) x_positive_data=[] y_positive_data=[] x_ne_data=[] y_ne_data=[] for i in range(1000): if y_tarin[i]==1: x_positive_data.append(x_train[i][0]) y_positive_data.append(x_train[i][1]) else: x_ne_data.append(x_train[i][0]) y_ne_data.append(x_train[i][1]) fig=plt.figure(figsize=(20,20)) plt.scatter(x_positive_data,y_positive_data) plt.scatter(x_ne_data,y_ne_data) plt.show() os.system("pause")
我们的结果图如下: