在K-Means算法(Apache Spark)中找到K的完美值

时间:2017-06-20 19:05:48

标签: apache-spark machine-learning cluster-analysis k-means

我正在开发一个涉及使用K-means模型进行异常检测的项目。

然而,为了获得几乎精确和精确的结果,我需要找到K的最佳值。

我的算法依赖于我的模型中的异常值通常会自己放在群集上的想法。通常"正常"数据将与其他正常数据聚集在一起,但异常数据将形成自己的聚类,因此表明存在异常。但是,我需要找到K的最佳值才能使我的算法工作并查看它是否好。

关于如何找到好的K值的任何想法?

这是一个带有" normal"的示例文件。我将使用虚拟数据来训练我的模型:

User

1 个答案:

答案 0 :(得分:0)

使用K-means的分层版本。 Apache Spark拥有以这种方式工作的BisectingKMeans。它会根据您拥有的记录数量计算出K的良好值。这样,您在创建模型时就不必定义K(群集)。如果你对它指定的那个感到不舒服,你仍然可以设置K的值,但它通常可以正常工作。

感谢@Peheje的提示。