java 实现DBScan聚类算法

Posted 格格巫 MMQ!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 实现DBScan聚类算法相关的知识,希望对你有一定的参考价值。

最近有一个需求,在地图上,将客户按照距离进行聚合。比如,a客户到b客户5km,b客户到c客户5km,那么abc就可以聚合成一个集合。首先想到的就是找一个根据坐标来聚合的算法,这里找了一些后来选择了较为简单也符合要求的DBScan聚类算法。

它是一种基于密度的聚类算法,简单来说就是根据样本的紧密程度和数量将其分成多个集合。这个样本一般来说是一堆坐标点。参数可以为欧式距离和邻域密度阈值(就是每次寻找相邻的点的最低数量)。最终返回多个样本集合。

2.java实现
  坐标点:这个类如果测试的话,只用到里面的point坐标点这个属性

import java.util.Collection;
import org.apache.commons.math.stat.clustering.Clusterable;
import org.apache.commons.math.util.MathUtils;

import bsh.This;

/**

  • @author xjx

*/
public class CustomerPoint implements Clusterable{

private String sender;
private String sender_addr;
private int value;
private final double[] point;


public int getValue() {
    return value;
}
public void setValue(int value) {
    this.value = value;
}
public String getSender() {
    return sender;
}
public void setSender(String sender) {
    t

以上是关于java 实现DBScan聚类算法的主要内容,如果未能解决你的问题,请参考以下文章

无监督学习DBSCAN聚类算法原理介绍,以及代码实现

深度解读 python 实现 dbscan算法

DBSCAN密度聚类算法(理论+图解+python代码)

DBSCAN聚类算法的实现

DBSCAN聚类算法的实现

⭐K-Means和DBSCAN聚类算法——理论结合代码的实现