本次目标
2018-06-24 17_14_56-【邹博_chinahadoop】机器学习升级版VII(七).png密度聚类
2018-06-26 19_26_05-【邹博_chinahadoop】机器学习升级版VII(七).pngDBSCAN算法
2018-06-26 19_31_40-【邹博_chinahadoop】机器学习升级版VII(七).png 2018-06-26 19_34_29-【邹博_chinahadoop】机器学习升级版VII(七).png 2018-06-26 19_40_26-【邹博_chinahadoop】机器学习升级版VII(七).png噪声:特征还包括不能被其他样本密度可达
课堂问答
问: 每个p都必须是核心对象么?
答:是的,如果p1 -> p2 -> p3->...->pn -> q,所有p都是核心对象,最后一个是不是不清楚。
问:核心对象怎么确定?
答:给定ε,给定一个m值,只要样本周边的样本个数>M值,这个样本是核心对象。或者说一个样本周边有足够样本,就是核心对象,否则不是。
1.确定核心对象
- 确定密度可达的样本集合,即在ε范围,确定集合
- UNION - FIND - SET
即并查集,这个是用于实现集合交的方式简单,速度较快的方法
从而实现聚类
课堂问答
问:如果密度可达,就是密度相连的吧?
答:是的
问:一般的阈值如何确定?
答:需要调参
问:m和ε也是调参么?
答:是的,是调参
如果存在某个核心对象,能够被两个簇的中心样本密度可达,这两个簇,往往也能连在一起。即可以合并簇
问:感觉半径r的设定,对结果影响很大?
答:是的
问:密度相连的两个点,路径不唯一?
答:是的
问:epoch能否再讲解一遍?
答:线性回归中的概念。如果对x1, x2, x3, ..., xn, 我们总是会用某种方式,下降其维度,如果把所有样本遍历一遍,下降完了,这个叫做一个epoch。但我们往往会取若干个样本,其个数,远远小于总样本个数,这称之为mini-batch。如1000个样本,我们的batch选择50(个样本),则完成20个mini-batch,对1000个样本完成一次epoch。
问:1->2->3->4,1和4超出半径r,还是一个簇么?
答:是一个簇,因为都是密度可达的。
问:这个算法对数据分布有要求么?
答:没有
问:1和3是核心对象,1->2, 3->2,123是一个簇么?
答:是不确定的。因为无法判断123一定是一个簇,共同指向一个东西很难说,但反过来,1->2, 1->3,则123是一个簇。
问:如果123不是一个簇,2归谁呢?
答:1与3不一定如何,2归1或2归3都有道理。
问:在DBSCAN中,指向不是相互的么?即1->2,等同于2->1么?
答:不是的。不确定的。
问:并查集是什么?
答:并查集是在做基本数据结构,总会要用的一个东西。
比如往往做最小生成树,如Kruskal算法
附图:
2018-06-26 20_12_06-【邹博_chinahadoop】机器学习升级版VII(七).png
问:异常值怎么判断?
答:如果一个样本不是核心对象,并且没有被其他核心对象密度可达,即可以判定为异常值。
异常值被参数半径:r与邻域样本数量参数影响。
如:
2018-06-26 20_13_20-【邹博_chinahadoop】机器学习升级版VII(七).png
有可能需要做后处理。
问:如果2是核心对象,那123是一个簇;如果2不是核心对象,是不是可以分为两簇?
答:有可能,其实是待定的。可以通过双向并查集尝试。
问:密度的定义是否可以处理多维数据?
答:可以。我们只是定义了ε邻域,并没有定义什么是ε邻域。
问:m值就是最小的簇元素的个数么?
答:如果周边的样本大于m个,则就是核心对象。但是理论上最小的簇元素的个数就是m个
网友评论