2017-08-04 113 views
1

我正在寻找能够对具有数字和分类功能的数据进行聚类的Apache Spark(Scala/Java)中的算法。在Apache Spark中使用分类和数字功能对数据进行聚类

就我所见,有一个针对pyspark的k-medoids和k-prototypes的实现(https://github.com/ThinkBigAnalytics/pyspark-distributed-kmodes),但我无法为我目前正在使用的Scala/Java版本找到类似的东西。

是否有另一种推荐算法来实现Spark运行Scala的类似事情?还是我忽略了一些东西,实际上可以在我的Scala项目中使用pyspark库?

如果您需要更多信息或澄清请随时询问。

+0

Spark有用于聚类数据的K-means,是否不符合您的需求? – dumitru

+0

@dumitru就我的研究而言,kMeans不适用于分类数据 - 即使您将它们转换为数值,结果也不是那么有意义。 – LST

回答

0

我认为您需要先使用OneHotEncoder将您的分类变量转换为数字,然后您可以使用mllib应用您的聚类算法(例如kmeans)。另外,我建议在应用群集算法之前先执行scaling or normalization,因为它是距离敏感的。