聚类算法 dbscan java 实现

本文介绍了如何使用Java实现著名的密度基聚类算法Dbscan,详细阐述了算法原理,并提供了相应的代码实现,帮助读者理解并掌握Dbscan在实际中的应用。
摘要由CSDN通过智能技术生成

最近总结了一下聚类算法,顺手实现了一下dbscan

DBScan 的思想
   给定半径r 和密度阈值 minPoints ,如果以某个点为中心,半径为r
画圈,若圈内点大于密度阈值,则该点就是核心点,核心点和圈内点
形成一个微簇,迭代选择未访问过的点进行画圈,并且与已有的微簇进
行合并,直到所有的点都被访问过。

这里写图片描述

package com.yc;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;

public class DBSCAN {
   
    private static final String fileName = "points.txt";
    private static final String resultFileName = "result.txt";
    private static final double r = 0.05; // 半径
    private static final int minPoints = 5;// 密度阈值
    private static List<List<Point>> microCluster = new CopyOnWriteArrayList<>();

    static class Point {
        private int id; // 点的序列号
        private List<Double> location;// 点的坐标
        private int flag; // 0表示未处理,1表示处理了

        Point(int id, List<Double> location, int flag) {
            this.id = id;
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值