机器学习Python

机器学习笔记 - 17. 聚类(下)(讲师:邹博)

2018-06-24  本文已影响3人  blade_he

本次目标

2018-06-24 17_14_56-【邹博_chinahadoop】机器学习升级版VII(七).png

密度聚类

2018-06-26 19_26_05-【邹博_chinahadoop】机器学习升级版VII(七).png

DBSCAN算法

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值,这个样本是核心对象。或者说一个样本周边有足够样本,就是核心对象,否则不是。

2018-06-26 19_48_56-【邹博_chinahadoop】机器学习升级版VII(七).png

1.确定核心对象

  1. 确定密度可达的样本集合,即在ε范围,确定集合
  2. 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个

密度最大值聚类

2018-06-26 20_19_27-【邹博_chinahadoop】机器学习升级版VII(七).png
上一篇 下一篇

猜你喜欢

热点阅读