Python k-means聚类的性能很差,如何改进?

Python k-means聚类的性能很差,如何改进?,python,pyspark,k-means,Python,Pyspark,K Means,我正在使用pyspark.ml进行k-means聚类。数据大约有500万行和100个特征,这些特征都是分类的。我使用一个热编码来转换它们 我只是在以下示例中使用了代码: 但是,k-means的性能非常差。欧几里德距离平方的平均轮廓约为 0.15 我尝试将k值(从2更改为3000)和随机种子更改为100万到100万。但是,性能是相似的 从这个平均轮廓值,我可以得出这样的结论:数据不能很好地划分为不同的簇吗 或者,可能存在导致问题的异常值,我需要删除一些特性?如果是,如何确定哪些应该取消或监

我正在使用pyspark.ml进行k-means聚类。数据大约有500万行和100个特征,这些特征都是分类的。我使用一个热编码来转换它们

我只是在以下示例中使用了代码:

但是,k-means的性能非常差。欧几里德距离平方的平均轮廓约为

  0.15
我尝试将k值(从2更改为3000)和随机种子更改为100万到100万。但是,性能是相似的

从这个平均轮廓值,我可以得出这样的结论:数据不能很好地划分为不同的簇吗

或者,可能存在导致问题的异常值,我需要删除一些特性?如果是,如何确定哪些应该取消或监管


谢谢

您是否尝试过其他距离指标,如曼哈顿、皮尔森或斯皮尔曼?这在很大程度上取决于数据集和目标,但值得一试,因为它会影响群集性能。谢谢,但我在pyspark API文档中没有看到距离选项。