TOP

DBSCAN算法的Java实现
2014-11-19 07:05:38 】 浏览:9808
Tags:DBSCAN 算法 Java 实现

  DBSCAN是一种基于密度的聚类算法,它的基本原理就是给定两个参数,ξ和minp,其中 ξ可以理解为半径,算法将在这个半径内查找样本,minp是一个以ξ为半径查找到的样本个数n的限制条件,只要n>=minp,查找到的样本点就是核心样本点,算法的具体描述见参考文件1,下边是这个算法的java实现:


  首先定义一个Point类,代表样本点


  


  package com.sunzhenxing;


  public class Point {


  private int x;


  private int y;


  private boolean isKey;


  private boolean isClassed;


  public boolean isKey() {


  return isKey;


  }


  public void setKey(boolean isKey) {


  this.isKey = isKey;


  this.isClassed=true;


  }


  public boolean isClassed() {


  return isClassed;


  }


  public void setClassed(boolean isClassed) {


  this.isClassed = isClassed;


  }


  public int getX() {


  return x;


  }


  public void setX(int x) {


  this.x = x;


  }


  public int getY() {


  return y;


  }


  public void setY(int y) {


  this.y = y;


  }


  public Point(){


  x=0;


  y=0;


  }


  public Point(int x,int y){


  this.x=x;


  this.y=y;


  }


  public Point(String str){


  String[] p=str.split(",");


  this.x=Integer.parseInt(p[0]);


  this.y=Integer.parseInt(p[1]);


  }


  public String print(){


  return "<"+this.x+","+this.y+">";


  }


  }


  然后定义一个工具类,为算法的实现服务:


  package com.sunzhenxing;


  import java.io.BufferedReader;


  import java.io.FileReader;


  import java.io.IOException;


  import java.util.*;


  public class Utility {


  /**


  * 测试两个点之间的距离


  * @param p 点


  * @param q 点


  * @return 返回两个点之间的距离


  */


  public static double getDistance(Point p,Point q){


  int dx=p.getX()-q.getX();


  int dy=p.getY()-q.getY();


  double distance=Math.sqrt(dx*dx+dy*dy);


  return distance;


  }



DBSCAN算法的Java实现 https://www.cppentry.com/bencandy.php?fid=81&id=13183

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇浅谈Java多态性 下一篇Java插入排序算法