Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解释聚类结果?_Python_Scikit Learn_Cluster Analysis_K Means - Fatal编程技术网

Python 如何解释聚类结果?

Python 如何解释聚类结果?,python,scikit-learn,cluster-analysis,k-means,Python,Scikit Learn,Cluster Analysis,K Means,假设我有一个高维数据集,我假设它可以通过某种聚类算法很好地分离。然后我运行算法,最后得到我的集群 是否有任何方式(最好不是“黑客”或某种启发式)来解释“在使集群A的成员(例如)成为集群A的一部分时,哪些特征和阈值是重要的?” 我已经尝试过寻找集群质心,但对于高维数据集来说,这会变得单调乏味 我还尝试将决策树拟合到集群中,然后查看该树以确定给定集群的大多数成员遵循哪个决策路径。我还尝试将SVM拟合到我的聚类中,然后对最接近质心的样本使用石灰,以便了解在质心附近分类时哪些特征是重要的 然而,后两种方

假设我有一个高维数据集,我假设它可以通过某种聚类算法很好地分离。然后我运行算法,最后得到我的集群

是否有任何方式(最好不是“黑客”或某种启发式)来解释“在使集群A的成员(例如)成为集群A的一部分时,哪些特征和阈值是重要的?”

我已经尝试过寻找集群质心,但对于高维数据集来说,这会变得单调乏味

我还尝试将决策树拟合到集群中,然后查看该树以确定给定集群的大多数成员遵循哪个决策路径。我还尝试将SVM拟合到我的聚类中,然后对最接近质心的样本使用石灰,以便了解在质心附近分类时哪些特征是重要的


然而,后两种方法都需要在无监督的环境中使用监督学习,我感到“不舒服”,而我想要更扎根的方法。

您是否尝试过使用PCA或其他降维技术并检查集群是否仍然有效?有时关系仍然存在于较低的维度中(注意:这并不总是有助于人们理解数据)。关于可视化MNIST数据的很酷的文章。我希望这有点帮助

您有基于密度的DBSCAN聚类(以及其他基于密度的聚类方法)。您将得到紧凑的集群。对于这些集群中的每一个,您最终可以看到有助于形成集群的功能


您还了解到,Dencule、OptiGrid和BIRCH是处理大型数据集的合适聚类算法,尤其是Dencule和OptiGrid,它们也可以处理高维数据。它们的使用方式与DBSCAN相同,可以找到最有贡献的功能。

不要将聚类算法视为黑盒


是的,k-means使用质心。但大多数高维数据的算法都没有(也没有使用k-means!)。相反,他们通常会选择一些特征、投影、子空间、流形等。因此,看看实际的聚类算法提供了什么信息

我担心查看均值的质心可能是k均值聚类的最佳选择Tanks@modesitt,是否还有其他聚类算法可以产生更可解释的结果?这并不能回答OP的问题。这些方法如何帮助解释?它们可以形成不同形状和大小的簇,因此它们比形成凸簇的k-均值更好地帮助解释(凸簇并不总是反映现实)。对于大数据和高维数据,k-means的速度也更快。k-means还可以形成不同形状和大小的簇,包括非凸簇。如果这些算法有助于解释性,我建议你编辑你的答案以包含这些信息。我应该补充一点,虽然可以用k-均值找到凸簇,但通常是边缘情况,你不应该使用这种算法。