在K-Means算法中找到最佳K值(Apache Spark)

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

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

我的算法基于这样一个理念:模型中的异常值通常会被单独分配到一个聚类中。通常“正常”的数据会与其他正常数据聚集在一起,而异常数据会形成自己的聚类,从而指示出异常。然而,我需要找到最佳的K值,使我的算法能够正常工作,并判断其效果是否良好。

关于如何找到一个好的K值,有什么建议吗?

这是一个包含“正常”虚拟数据的样本文件,我将用它来训练我的模型:

Name    Size    RecordsFile1   1013    105727File2   990     104230File3   1520    110542File4   2198    115369File5   2026    113430File6   1844    112105File7   1216    108159File8   1520    110408File9   1013    105359File10  1317    108428File11  1925    112553File12  1449    109456File13  1803    111436File14  2036    115937File15  2043    116383

回答:

使用K-means的层次版本。Apache Spark有BisectingKMeans,它以这种方式工作。它根据你拥有的记录数量计算一个好的K值。这样,你在创建模型时就不需要定义K(聚类)。如果你对它分配的K值不满意,你仍然可以设置一个K值,但通常它运作得很好。

感谢@【隐藏人名】的建议。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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