Python:生成聚類數據:米老鼠 (不平衡數據)

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
np.random.seed(101)
n = 800
m = 50
k = 50
t = np.random.random(size=n) * 2 * np.pi -np.pi
x1 = np.cos(t)
x2 = np.sin(t)

for i in range(n):
    len = np.sqrt(np.random.random())
    x1[i] = x1[i] * len
    x2[i] = x2[i] * len
#------------------------------------------------------
s = np.random.random(size=m) * 2 * np.pi -np.pi
x3 = np.cos(s)
x4 = np.sin(s)
for j in range(m):
    len = np.sqrt(np.random.random())/5
    x3[j] = x3[j] * len + 0.85
    x4[j] = x4[j] * len + 0.85
#------------------------------------------------
w = np.random.random(size=k) * 2 * np.pi -np.pi
x5 = np.cos(w)
x6 = np.sin(w)
for r in range(k):
    len = np.sqrt(np.random.random())/5
    x5[r] = x5[r] * len - 0.85
    x6[r] = x6[r] * len + 0.85
#------------------已經生成數據,下面是數據整合並存儲-------------------
X1 = np.zeros((n,3))
for i in range(n):
    X1[i,0] = x1[i]
    X1[i,1] = x2[i]
    X1[i,2] = 0
X2 = np.zeros((m,3))
for j in range(m):
    X2[j,0] = x3[j]
    X2[j,1] = x4[j]
    X2[j,2] = 1
X3 = np.zeros((k,3))
for z in range(k):
    X3[z,0] = x5[z]
    X3[z,1] = x6[z]
    X3[z,2] = 2

X = np.vstack((X1,X2,X3))
data = pd.DataFrame(X)
data.to_csv(r'E:\dataset\clusterData\bolbs_hard.csv',index=None,header=None)



# plt.figure(1)
plt.scatter(x1,x2,marker='*',c='r',linewidths=0.0005)
plt.scatter(x3,x4,marker='o',c='b',linewidths=0.0005)
plt.scatter(x5,x6,marker='o',c='b',linewidths=0.0005)


plt.show()

不平衡數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章