我正在尝试使用 DL4J 的 K-Means 实现。我设置如下:
int CLUSTERS = 5;
int MAX_ITERATIONS = 300;
String DISTANCE_METRIC = "cosinesimilarity";
KMeansClustering KMEANS = KMeansClustering.setup(CLUSTERS, MAX_ITERATIONS, DISTANCE_METRIC);
我的数据点是大小为 300(双精度)的向量,我的测试集每次包含约 100 个数据点(给予或接受)。我以单线程方式在我的 CPU(4 核)上运行它。
评估需要很长时间(每个示例几秒钟)。
我查看了算法的实现,看起来它的并发级别非常高 - 正在创建大量线程(准确地说,每个数据点一个)并并行执行。也许这是矫枉过正?有什么办法可以通过配置来控制吗?其他加快速度的方法?如果没有,是否还有其他基于 java 的快速解决方案来执行 k-means?