【问题标题】:Not getting clusters formed in 3D for 38dimensions没有在 38 维中形成 3D 集群
【发布时间】:2019-12-01 16:58:59
【问题描述】:

基本上我对 527*38(行 x 列)的数据集使用 K-means。 我想使用 K-means 并且我已经设置了 3 个集群,但我无法在 3D 维度中对其进行可视化。如果有人可以帮助我尝试过,我会展示它

我已将我的数据集 x4 转换为列表

下面是代码

from sklearn.cluster import KMeans
# Number of clusters
kmeans = KMeans(n_clusters=3)
# Fitting the input data
kmeans = kmeans.fit(x4)
# Centroid values
c = kmeans.cluster_centers_
import numpy as np
x4=np.array(x4)
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x4[:, 0], x4[:, 1], x4[:, 2])
ax.scatter(c[:, 0], c[:, 1], c[:, 2], marker='*', c='#050505', s=1000)

尝试用 3d 绘图 我附上了我得到的输出图像

这是预期的输出图像。像这样的东西是我需要 3 个集群

【问题讨论】:

    标签: python cluster-analysis


    【解决方案1】:

    看起来您正在尝试仅使用前三个维度在 3D 图中绘制具有 38 个维度的数据点,这是不正确的。

    要正确可视化集群,您可以尝试以下方法。

    1. 考虑绘制方差最大的前 3 个维度。
    2. 使用Principle Component Analysis等降维方法将38维降为3维。

    【讨论】:

    • 我知道通过 PCA 减少维度,我们可以看到它,但没有实现 PCA & 直接我想实现 Kmeans 并查看我的数据集是否形成了集群是否有可能这样形象化吗?还是我们需要实现 pca,然后才能将其可视化?
    • 理想情况下,您应该使用 PCA 来减少维度。但是,您可以尝试绘制变化最大的前 3 个维度来可视化您的集群,但它可能效果不佳。
    • 您可以在所有 38 个维度上进行聚类,并使用 2 或 3 个维度进行绘图。那么 PCA 是最合适的选择,因为第一个维度的方差最大。
    • 但我建议只使用 PCA 中的 rotation,而不是缩放!
    猜你喜欢
    • 2013-02-22
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2012-08-04
    相关资源
    最近更新 更多