如何解释聚类结果?
How to explain clustering results?
假设我有一个高维数据集,我认为它可以通过某种聚类算法很好地分离。然后我 运行 算法并最终得到我的集群。
是否有任何方式(最好不是 "hacky" 或某种启发式方法)来解释 "what features and thresholds were important in making members of cluster A (for example) part of cluster A?"
我试过查看聚类质心,但这对于高维数据集来说很乏味。
我也尝试过将决策树拟合到我的集群,然后查看树以确定给定集群的大多数成员遵循的决策路径。我还尝试将 SVM 安装到我的集群中,然后在最接近质心的样本上使用 LIME,以便了解哪些特征在质心附近的分类中很重要。
然而,后两种方式都需要在无监督环境中使用监督学习,我觉得 "hacky",而我想要更扎实的东西。
您是否尝试过使用 PCA 或其他一些降维技术并检查集群是否仍然成立?有时关系仍然存在于较低的维度中(警告:它并不总是有助于一个人对数据的理解)。关于可视化 MNIST 数据的精彩文章。 http://colah.github.io/posts/2014-10-Visualizing-MNIST/。我希望这能有所帮助。
不要将聚类算法视为黑盒。
是的,k-means 使用质心。但是大多数用于高维数据的算法不会(并且不使用 k-means!)。相反,它们通常会 select 一些特征、投影、子空间、流形等。因此请查看实际聚类算法提供的信息!
假设我有一个高维数据集,我认为它可以通过某种聚类算法很好地分离。然后我 运行 算法并最终得到我的集群。
是否有任何方式(最好不是 "hacky" 或某种启发式方法)来解释 "what features and thresholds were important in making members of cluster A (for example) part of cluster A?"
我试过查看聚类质心,但这对于高维数据集来说很乏味。
我也尝试过将决策树拟合到我的集群,然后查看树以确定给定集群的大多数成员遵循的决策路径。我还尝试将 SVM 安装到我的集群中,然后在最接近质心的样本上使用 LIME,以便了解哪些特征在质心附近的分类中很重要。
然而,后两种方式都需要在无监督环境中使用监督学习,我觉得 "hacky",而我想要更扎实的东西。
您是否尝试过使用 PCA 或其他一些降维技术并检查集群是否仍然成立?有时关系仍然存在于较低的维度中(警告:它并不总是有助于一个人对数据的理解)。关于可视化 MNIST 数据的精彩文章。 http://colah.github.io/posts/2014-10-Visualizing-MNIST/。我希望这能有所帮助。
不要将聚类算法视为黑盒。
是的,k-means 使用质心。但是大多数用于高维数据的算法不会(并且不使用 k-means!)。相反,它们通常会 select 一些特征、投影、子空间、流形等。因此请查看实际聚类算法提供的信息!