Machine learning 验证聚类算法的输出

Machine learning 验证聚类算法的输出,machine-learning,scipy,data-mining,cluster-analysis,scikit-learn,Machine Learning,Scipy,Data Mining,Cluster Analysis,Scikit Learn,是否有客观的方法来验证聚类算法的输出? 我正在对一个由具有许多属性的对象组成的数据集使用scikit learn的亲和传播集群。提供给聚类算法的差异矩阵由这些属性的加权差异组成。我正在寻找一种客观地验证结果集群中反映的距离权重调整的方法。数据集很大,并且具有足够的属性,因此手动检查小示例不是验证生成的群集的合理方法。是: 将集群交给领域专家,让他分析算法发现的结构是否合理。如果它是新的,就不那么重要了,但如果它是明智的 。。。和否: 没有公平的自动评估。从某种意义上说,它考虑了无监督聚类的目标:

是否有客观的方法来验证聚类算法的输出?

我正在对一个由具有许多属性的对象组成的数据集使用scikit learn的亲和传播集群。提供给聚类算法的差异矩阵由这些属性的加权差异组成。我正在寻找一种客观地验证结果集群中反映的距离权重调整的方法。数据集很大,并且具有足够的属性,因此手动检查小示例不是验证生成的群集的合理方法。

将集群交给领域专家,让他分析算法发现的结构是否合理。如果它是新的,就不那么重要了,但如果它是明智的

。。。和

没有公平的自动评估。从某种意义上说,它考虑了无监督聚类的目标:知识发现,又称为:了解有关数据的新信息

自动评估群集有两种常用方法:

  • 内部凝聚力。也就是说,存在一些特定的属性,如群内方差与群间方差相比,以最小化。问题是,作弊通常是相当微不足道的。也就是说,构建一个分数非常高的简单解决方案。因此,该方法不得用于比较基于不同假设的方法。对于层次聚类,您甚至无法比较不同类型的链接

  • 外部评价。您使用一个带标签的数据集,并根据算法重新发现现有知识的程度对算法进行评分。有时这种方法效果很好,所以它是一种公认的评估技术。然而,任何有监督或半监督的方法当然会在这方面取得更好的成绩。因此,它是A)偏向于监督的方法,B)实际上完全违背了发现你还不知道的东西的知识发现理念

如果您真的打算使用集群,即了解有关您的数据的一些信息,那么您将在某个时候必须检查集群,最好使用完全独立的方法,例如领域专家。如果他能告诉你,例如,集群识别的用户组是一个尚未仔细调查的非平凡组,那么你就是赢家

然而,不幸的是,大多数人希望进行“一键”(和一分)评估


哦,“集群”并不是真正的机器学习任务。实际上,这并不涉及学习。对于机器学习社区来说,这是一只无人关心的丑小鸭。

还有另一种方法通过计算子文件夹上的稳定性度量来评估聚类质量,有点像监督模型的交叉验证:

  • < P>在A、B和C 3个数据段中拆分数据集,在A+B和A+C上用两种算法计算两个聚类,计算它们的交叉点A上的2个标记的调整的兰德指数或调整的互信息,并将该值视为算法稳定性分数的估计。< /P>
  • 重复冲洗,将数据混洗,并将其拆分为其他3个折叠A',B'和C',然后重新计算稳定性分数

  • 平均5次或10次以上的稳定性得分,以粗略估计稳定性得分的标准误差

你可以猜到这是一种非常计算机密集的评估方法

这仍然是一个开放的研究领域,以了解这种基于稳定性的聚类算法评估在实践中是否真的有用,并确定何时不能产生有效的模型选择标准。请参阅Ulrike von Luxburg及其参考文献,了解这些问题的最新进展


注意:如果您想使用此策略来选择k-means中k的最佳值,那么使用调整后的机会指标(如ARI或AMI)是很重要的。非调整指标,如NMI和V-measure,倾向于选择k值更高的模型。

这是我担心的。我一直在积极应用一种方差最小化的形式。我应该移除机器学习标签吗?我认为这是切分的关系,足以吸引正确的人群。标签不会造成伤害。方差最小化(由k-均值执行)是这种偏差的一个很好的例子:更多的聚类(更大的k)总是会减少方差,但结果并不一定会更好,“哦,‘集群’并不是真正的机器学习任务。实际上,这并不涉及学习。对于机器学习社区来说,这是一只没有人关心的丑小鸭”。最终会有一只天鹅吗?集群是一个高度(低级)的问题不明确的问题,但同时也是一个非常自然的认知问题,也是一个重要的问题。其不明确的性质导致了太多关于集群的出版物,以及大量可怕的捏造的优越性证明。要使集群对应用程序有意义,首先需要考虑规范。大多数算法THM有一些或多或少明确的规范,人们对它们关心得太少。比如说k-均值。它有一个关键假设,即A)均值是集群的合理代表,B)方差必须最小化。如果其中任何一个对特定工作没有意义,不要使用k-均值。(坦率地说,平均值往往是不合理的……)然而,集群的美妙之处恰恰在于它没有被明确规定。因为你想在某种程度上发现合适的规范。但是你必须忍受必须尝试几十种集群算法,直到你找到一种在你的特定问题上真正帮助你的算法。没有一刀切的方法。