【发布时间】:2021-12-24 14:49:12
【问题描述】:
我有一个包含三个集群的 3d 空间,但是当我使用 Sklearn.cluster Kmeans 执行集群时,结果不太好。这是代码和结果。希望你能帮忙:)
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
km = KMeans(n_clusters=3)
y_predicted = km.fit_predict(df1[['x','y','z']])
y_predicted
def create_3d_scatter_wprd(df):
fig = plt.figure(figsize=(48, 24))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(df['x'], df['y'], df['z'], c=y_predicted)
plt.show()
create_3d_scatter_wprd(df)
对于那些对如何制作数据感兴趣的人,这里是代码
space = np.zeros((100,100,100))
def distance(a,b,c,i,j,k,r):
if math.dist((a,b,c),(i,j,k)) <= r:
return True
else:
return False
for i in range(1,31):
for j in range(1,31):
for k in range(1,31):
space[i,j,k] = 1
for i in range(60,85):
for j in range(60,85):
for k in range(60,85):
space[i,j,k] = 2
for i in range(35,55):
for j in range(35,55):
for k in range(35,55):
if distance(i,j,k,45,45,45,10):
space[i,j,k] = 3
【问题讨论】:
-
如何重现
df1? -
@Corralien df1 只是一个包含点 x,y,z 坐标的简单数据框
-
我明白,但是如何创建这个数据框来获得类似的情节?
-
@Corralien 好的,我已经添加了数据生成的代码!抱歉耽搁了!没有收到您的评论。
标签: python pandas scikit-learn cluster-analysis k-means