DBSCAN聚类算法

一、DBSCAN算法是一种基于密度的聚类算法,聚类的时候不需要预先指定簇的个数,最终簇的个数不确定。
DBSCAN算法将数据点分为三类:
1、核心点:在半径Eps内含有超过MinPts数目的点。
2、边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点。
3、噪音点:既不是核心点也不是边界点的点。
在这里插入图片描述
DBSCAN算法流程:
1、将所有点标记为核心点、边界点或噪声点;
2、删除噪声点;
3、为距离在Eps之内的所有核心点之间赋予一条边;
4、每组连通的核心点形成一个簇;
5、将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半径范围之内)。
二、以中国MOOC大学《Python机器学习基础》课程练习材料实现,通过DBSCAN聚类,分析学生上网时间和上网时长的模式。原始数据集是校园网的日志数据,单条记录格式如下:
在这里插入图片描述
原始数据处理相关代码如下:

import numpy as np
import sklearn.cluster as skc
from sklearn import metrics
import matplotlib.pyplot as plt

onlinetimes = []    #存储开始上网时间和上网时长
f = open('Dbscan_Data.txt', encoding='utf-8')  #读取数据
for line in f:
    line = line.split(',')
    onlinetime = int(line[6])   #读取每条数据中的上网时长
    starttime = int(line[4].split(' ')[1].split(':')[
  • 10
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值