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聚类算法的主要内容,如果未能解决你的问题,请参考以下文章