首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Python中可视化多维集群?

如何在Python中可视化多维集群?
EN

Stack Overflow用户
提问于 2021-02-12 15:12:08
回答 2查看 185关注 0票数 2

我正尝试在Python语言中测试3种聚类算法(K-means,SpectralClustering,Mean Shift)。我有一个包含26列和数千行的数据集,我需要一些帮助来处理高维数据集(子集如下所示)。

代码语言:javascript
代码运行次数:0
运行
复制
UserID  Communication_dur   Lifestyle_dur   Music & Audio_dur   Others_dur  Personnalisation_dur    Phone_and_SMS_dur   Photography_dur Productivity_dur    Social_Media_dur    System_tools_dur    ... Music & Audio_Freq  Others_Freq Personnalisation_Freq   Phone_and_SMS_Freq  Photography_Freq    Productivity_Freq   Social_Media_Freq   System_tools_Freq   Video players & Editors_Freq    Weather_Freq
1   63  219 9   10  99  42  36  30  76  20  ... 2   1   11  5   3   3   9   1   4   8
2   9   0   0   6   78  0   32  4   15  3   ... 0   2   4   0   2   1   2   1   0   0

我必须对具有非常高维度的数据进行聚类。我想知道如何尽可能准确地实现它。如何可视化集群和数据点?

附注:经过一些搜索后,我意识到可以应用PCA进行降维,但我想知道它是如何使用的。

EN

回答 2

Stack Overflow用户

发布于 2021-02-12 15:39:49

t-SNE和UMAP是可以帮助您实现良好可视化的工具。只需google PCA sklearn和阅读一些示例。您可以将数据的维度(让我们称其为新特性)减少到两到三个。然后,为每个集群的成员指定一种特定的颜色。您的曲线图应将数据点(具有相同颜色)显示为一个聚类。但是,请注意,使用这些工具并不一定要保持数据点在其原始空间中彼此之间的相对距离。换句话说,您的集群过程可能执行得很好,但这种“非常好”的性能在2维或3维上可能并不“明显”。

票数 0
EN

Stack Overflow用户

发布于 2021-02-12 16:58:14

这是我从Scikit-Learn网页上得到的一个非常简短的例子:

代码语言:javascript
代码运行次数:0
运行
复制
from sklearn import decomposition
pca = decomposition.PCA(n_components=2)
pca.fit(X) 
X = pca.transform(X)

在本例中,X是特征矩阵。在本例中,n_components=2意味着您希望将数据缩减到新的2维空间中。在.tranform()之后,您的新特征矩阵X具有与其行相同数量的观察值,但只有三列,而不是它以前的所有特征。

然后,在聚类后,为不同的聚类分配不同的颜色,并在2D空间中绘制它们。你可以选择不同的n_components,但随着你增加它,它变得越来越难可视化。例如,对于n_components=3,您可以使用3D。对于4D,你可以使用颜色来显示额外的维度。对于5D,您可能希望更改数据点的大小,以此作为显示新维度的一种方式。

我附上了一张图片,在这里你可以看到如何使用基于PCA的可视化来展示训练和测试集上的分类模型的性能。您可以通过为每个组分配一种颜色来使用它进行聚类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66167649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档