基于weka的数据库挖掘-聚类方法-DBSCAN算法

释放双眼,带上耳机,听听看~!
本文介绍了利用weka实现K-means聚类和DBSCAN聚类的具体流程,以及DBSCAN算法的概念和实现过程。通过密度聚类方法,可发现任意形状的聚类,并对噪声数据不敏感。

基于weka的数据库挖掘➖聚类方法#DBSCAN算法

关于作者

  • 作者介绍

🍓 博客主页:作者主页
🍓 简介:JAVA领域优质创作者🥇、一名初入职场小白🎓、曾在校期间参加各种省赛、国赛,斩获一系列荣誉🏆
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻

目标

掌握weka中数据聚类的具体流程

内容

利用weka实现K-means聚类和DBSCAN聚类

密度聚类方法

密度聚类方法的指导思想是,只要一个区域中的点的密度大于某个域值,就把它加到与之相近的聚类中去。

这类算法能克服基于距离的算法只能发现“类圆形”的聚类的缺点,可发现任意形状的聚类,且对噪声数据不敏感但计算密度单元的计算复杂度大,需要建立空间索引来降低计算量,且对数据维数的伸缩性较差。

这类方法需要扫描整个数据库,每个数据对象都可能引起一次查询,因此当数据量大时会造成频繁的I/O操作。代表算法有:DBSCAN、OPTICS、DENCLUE算法等。

DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的空间数据库中发现任意形状的聚类。

概念初识

对象的ε-邻域:给定对象在半径ε内的区域。

核心对象:如果一个对象的ε-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象。

例如,在图5-6中,ε=1cm,MinPts=5,q是一个核心对象。

基于weka的数据库挖掘-聚类方法-DBSCAN算法

直接密度可达:给定一个对象集合D,如果p是在q的ε-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。

例如,在图5-6中,ε=1cm,MinPts=5,q是一个核心对象,对象p从对象q出发是直接密度可达的。

密度可达:如果存在一个对象链p1,p2,…,pn,p1=q,pn=p,对pi∈D,(1<=i<=n),pi+1是从pi关于ε和MitPts直接密度可达的,则对象p是从对象q关于ε和MinPts密度可达的。

例如,在图5-7中,ε=1cm,MinPts=5,q是一个核心对象,p1是从q关于ε和MitPts直接密度可达,p是从p1关于ε和MitPts直接密度可达,则对象p从对象q关于ε和MinPts密度可达的。

密度相连:如果对象集合D中存在一个对象o,使得对象p和q是从o关于ε和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的。

噪声:一个基于密度的簇是基于密度可达性的最大的密度相连对象的集合。不包含在任何簇中的对象被认为是“噪声”。

基于weka的数据库挖掘-聚类方法-DBSCAN算法

DBSCAN通过检查数据集中每个对象的ε-邻域来寻找聚类。如果一个点p的ε-邻域包含多于MinPts个对象,则创建一个p作为核心对象的新簇。然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并。当没有新的点可以被添加到任何簇时,该过程结束。具体如下:

基于weka的数据库挖掘-聚类方法-DBSCAN算法

DBSCAN算法描述

输入:包含n个对象的数据库,半径ε,最少数目MinPts。

输出:所有生成的簇,达到密度要求。

  1. REPEAT
  2. 从数据库中抽取一个未处理过的点;
  3. IF 抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇
  4. ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点;
  5. UNTIL 所有点都被处理;

下面给出一个样本事务数据库(见左表),对它实施DBSCAN算法。 根据所给的数据通过对其进行DBSCAN算法,以下为算法的步骤(设n=12,用户输入ε=1,MinPts=4)

样本数据库:

数据对象ID X Y
1 2 3
2 5 4
3 2 8
4 1 2
5 6 9
6 7 8
7 9 4
8 8 2
9 6 1
10 3 7
11 9 6
12 4 6

步骤:

第1步,初始化参数:n=12, ε=1, MinPts=4。

第2步,创建一个空的簇集合。

第3步,从数据库中选择一个未处理过的点作为当前点。我们选择数据对象ID为1的点作为起始点。

第4步,计算起始点的ε-邻域内的点数。在半径ε=1内,数据对象ID为1的点的邻域内有数据对象ID为2和数据对象ID为4。

第5步,判断起始点是否为核心点。由于邻域内的点数(2个)大于等于MinPts(4),数据对象ID为1的点被判断为核心点。

第6步,创建一个新的簇,并将数据对象ID为1的点加入到该簇中。

第7步,对于核心点数据对象ID为1的点,找出所有从该点密度可达的对象。在半径ε=1内,数据对象ID为1的点的密度可达对象有数据对象ID为2和数据对象ID为4。

第8步,将密度可达的对象数据对象ID为2和数据对象ID为4加入到当前簇中。

第9步,对于加入到簇中的点,重复步骤7和步骤8,继续找出从它们密度可达的对象,并将其加入到簇中。在此示例中,数据对象ID为2的点的密度可达对象为空,因此停止扩展该簇。

第10步,标记所有已经处理过的点。

第11步,检查是否还有未处理的点。如果有,则返回步骤3;否则,所有点都已处理完毕。

第12步,各个簇的生成过程如下:

  • 簇1:{数据对象ID为1, 数据对象ID为2, 数据对象ID为4}
  • 簇2:{数据对象ID为3, 数据对象ID为5, 数据对象ID为6, 数据对象ID为7, 数据对象ID为8, 数据对象ID为9}
  • 簇3:{数据对象ID为10, 数据对象ID为11, 数据对象ID为12}

具体实现

1)打开weka,加载weather.numeric.arff,切换至Cluster标签页,选择SimpleKMeans算法,保持默认参数,生成2个簇,单击Ignore attributes按钮,选择play属性为忽略属性,单击start运行。

基于weka的数据库挖掘-聚类方法-DBSCAN算法

2)得到如下结果,最终的聚类结果以表格形式显示(如下图):行对应属性名,列对应簇中心。如果是数值型属性,则显示平均值,若是标称型属性,显示簇所在列对应的属性标签。

基于weka的数据库挖掘-聚类方法-DBSCAN算法

3)选中结果列表中的SimpleKmeans算法,右键,选择Visualize cluster assignment,弹出可视化窗口,点击❌,查看每个点的情况,思考聚类的准确性

基于weka的数据库挖掘-聚类方法-DBSCAN算法

可以发现,聚类效果

基于weka的数据库挖掘-聚类方法-DBSCAN算法

4)加载鸢尾花,切换到cluster,choose-weka-DBSCAN,设置DBSCAN的参数如下,半径为0.2,minPoint为5

基于weka的数据库挖掘-聚类方法-DBSCAN算法

5)同样忽略类别属性,单击ignore atrributes,,选择class属性,,单击start运行,得如下结果,簇0有49个实例,簇1有98个实例,还有三个实例未能聚类,根据原始样本,我们知道总共有三个类别,山鸢尾、变色鸢尾、维吉尼亚鸢尾,但现在聚类结果聚成了两个簇

基于weka的数据库挖掘-聚类方法-DBSCAN算法

基于weka的数据库挖掘-聚类方法-DBSCAN算法

6)故更改DBSCAN的参数,将minPoints设为2,再观察结果,会发现生成了三个簇(自行完成),但根据原始文本,每个类别有 50个样本,所以聚成的结果依然不准确,分析结果,思考有多少样本被分错了

基于weka的数据库挖掘-聚类方法-DBSCAN算法

7)更改DBSCAN的参数,将minPoints设为2,选中结果列表中的DBSCAN算法,右键,选择Visualize cluster assignment,弹出可视化如下窗口

基于weka的数据库挖掘-聚类方法-DBSCAN算法

8)点击可视化窗口中的某一个点(叉号会弹出具体这个点的信息,

要求解释这个点的含义

基于weka的数据库挖掘-聚类方法-DBSCAN算法

所学新知

K-Means算法的主要优点是其原理简单、实现容易,且具有快速的收敛的速度。能够得到较优的聚类效果,并且具有较强的可解释性。其主要需要调参的参数仅仅是簇数k。

相比DBSCAN聚类算法与K-Means相比具有一些优势。一方面,DBSCAN不需要输入要划分的聚类个数,而是根据数据的密度自动确定聚类个数。另一方面,DBSCAN对聚类簇的形状没有偏倚,可以处理不同大小和不同形状的簇。同时,DBSCAN还可以通过参数来控制噪声的过滤。

与K-means算法比较,显而易见的K-means很难处理非球形的簇和不同形状的簇。K-means可以发现不是明显分离的簇,即使簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

深入了解Transformer模型的结构

2023-11-26 10:10:14

AI教程

百度智能云千帆大模型平台 2.0 产品技术解析

2023-11-26 10:23:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索