名词解释:
ε(Eps)邻域:以给定对象为圆心,半径为ε的邻域为该对象的ε邻域
核心对象:若ε邻域至少包含MinPts个对象,则称该对象为核心对象
直接密度可达:如果p在q的ε邻域内,而q是一个核心对象,则说对象q出发是直接密度可达的
密度可达:如果存在一个对象链p1,p2,....pn,p1=q.pn=p,对于pi∈D(1<= i <=n), pi+1 是从 pi 关于ε和MinPts直接密度可达的, 则对象p是从对象q关于ε和MinPts密度可达的
密度相连:对象p和对象q都是从0关于ε和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的
噪声:一个基于密度的簇是基于密度可达性的最大密度相连对象的集合。不包括在任何簇中的对象被认为是噪声
边界点:边界点不是核心点,但落在某个核心点的领域内
DBSCAN 算法根据以上的定义在数据库中发现簇和噪声。簇可等价于集合D中, 这个簇核心对象密度可达的所有对象的集合。
DBSCAN算法描述:
输入:包含n个对象的数据库,半径ε,最少数目MinPts。
输出:所有生成的簇,达到密度要求。
1.REPEAT
2.从数据库中抽取一个未处理过的点;
3.IF 抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇
4.ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点;
5.UNTIL 所有点都被处理
DBSCAN算法步骤 :
输入:数据集D,参数MinPts, ε 输出:簇集合
1:首先将数据集合D中的所有对象标记为unvisited
2:do
从D中随机选取一个unvisited对象p,并将p标记为visited
if p 的ε 邻域 包含的对象数至少为MinPts个
创建新簇C,并将p添加到c中
令N为p的ε 邻域 中对象的集合
for N中每个点的pi
if pi是unvisited
标记为visited
if pi的ε 邻域 包含的对象数至少为MinPts个 对象,把这些对象添加到N
if pi 还不是任何簇的对象,将pi添加到簇c中
end for
输出 c
else
标记p为噪声
untill 没有标记为unvisited对象