如何评估聚类?

我还在研究如何评估使用聚类(无监督学习)形成的聚类?

我尝试过谷歌搜索,但得到的度量方法过于理论化。如果大家能分享他们用来评估所形成聚类的方法就太好了。比如说,我有一个 Java 聚类,其中包含 Java EE、Java ME、RMI、JVM 等,另一个聚类是 NoSQL,其中包含 Neo4j、OrientDB、CouchDB 等。这非常完美,我的聚类算法已经为我提供了最准确的聚类。

然而,在训练和测试后,我可能会在 NoSQL 聚类下得到 MySQL、Oracle 等,所以我只是进行手动/视觉解释,然后重新训练我的算法或对其进行调整,以便获得更好的聚类效果。

现在我想自动化这个手动可视化聚类的过程,并拥有一个系统来提供所形成聚类的准确性。我正在寻找类似于搜索中使用的精确度、召回率、NDCG、Map 等的东西。我的聚类长度各不相同,并且可以形成 n 个不同的聚类,所以精确度/召回率可能不是合适的选择。


回答:

我在进行一个关于聚类的项目,目前也有同样的问题。

我现在使用的是JavaML库,该库内置了多种聚类算法(我使用的是 K-means),并且该库还提供了多种评估这些算法的功能。

我用来评估聚类“质量”的函数是每个聚类元素的平方误差之和。为了不那么数学化地解释这种评估方法,基本上平方误差之和总结了每个聚类中每个元素到其各自聚类中心的距离(在 K-means 的情况下)。这并不是您喜欢的完美和理想的评估方法,可能比视觉比较更好(我也有同样的问题),但至少这是一种正式的方式来识别“您的聚类有多好”。它成本低、速度快,并且可以为您提供聚类的总体视图。

您可能还想查看“聚类标记”问题。这不是一个简单的问题,但它试图解决同样的问题。

我认为您问题的正确答案取决于您使用的聚类算法,并且需要理解一些数学理论,因为这不是一个简单的主题 🙂

祝您好运!

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注