它存在许多评估指标,但通常它们在数据点的数量上是二次的或更多,这阻止了在海量数据集上作为RAND或Silhouette索引的任何应用。
目前我使用:
外部指标
- 归一化互信息
内部指标
- Davies Bouldin , 在和簇数
我在这里为那些感兴趣的人在 Scala 中的 Spark 框架下实现了这两个框架,但我很高兴知道是否存在其他框架,尤其是关于内部指标,因为即使 Davies Bouldin 可能是一个很好的评估指标,在我看来,只有椭圆集群。
它存在许多评估指标,但通常它们在数据点的数量上是二次的或更多,这阻止了在海量数据集上作为RAND或Silhouette索引的任何应用。
目前我使用:
我在这里为那些感兴趣的人在 Scala 中的 Spark 框架下实现了这两个框架,但我很高兴知道是否存在其他框架,尤其是关于内部指标,因为即使 Davies Bouldin 可能是一个很好的评估指标,在我看来,只有椭圆集群。
兰德指数并不比 NMI 贵,正确实施时为 O(n)。
有大约40个内部评价指标。我相当肯定有几个在运行时不是二次的。只需浏览列表,并为下一个具有相同问题的问题记录您的发现。
Spark 不适合集群。它可以做 k-means 和 GMM,但与其他工具相比,两者都非常慢。他们没有规模。为 Spark 实现 DBSCAN 的尝试更加糟糕。他们被发现返回不正确的结果导致崩溃,并且比单核实现更糟糕,例如 ELKI(更不用说并行 HPC 实现):
赫尔穆特·纽基兴。针对大数据和高性能计算范式的 DBSCAN 空间聚类实施的调查和性能评估
这不是 Spark 擅长的。并且考虑到它的所有“扩展” - 通常质量非常低 - 你很快就会遇到问题并且不知道应该责备谁以及在哪里解决它们。
确保进行基准测试。