生成高斯簇,就是先用正太分布生成若干个正态分布的簇类中心,然后再次基础上吗,在对这些簇类中心进行噪音处理,就可以啦
代码实现如下:
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")
我们的结果图如下:



