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

本次目标

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
2018-06-27 17_11_49-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-27 17_16_41-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-27 17_22_28-【邹博_chinahadoop】机器学习升级版VII(七).png

课堂问答

问:高局部密度距离的两个密度可以相等么?
答:

问:都小是不是表示边界?
答:都小,是噪声的噪声。其实ρ很小,δ很大的时候,一般是在边界上。

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

举例说明


2018-06-27 17_30_17-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-27 17_33_31-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-27 17_36_35-【邹博_chinahadoop】机器学习升级版VII(七).png

通过密度聚类,一定程度上可以看出簇的边在什么位置,会给出是否属于该簇的权值。通过EM算法,能够算出到底一个样本,(x,y)属于这个簇的概率

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

课堂问答

问:多大算大,多大算小?
答:这个需要调参,如下图
左下角聚类明显不合理,因为m值太小,所以需要将ε调的小一些
或者保持ε值,但需要将m值调大
ε比较大,可以将更多的样本纳入到簇里面
反之ε比较小,m值又比较小,有些样本纳入不到簇里面
如果发现噪声较多,可以将ε与m值同时调大,则噪声判断就变得严格了。

2018-06-27 17_46_09-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-27 18_13_52-【邹博_chinahadoop】机器学习升级版VII(七).png

相似度传递
通过矩阵计算,得出的两个结论
通过吸引程度与依赖程度,二者之间在一起形成的相似度


2018-06-27 18_14_31-【邹博_chinahadoop】机器学习升级版VII(七).png

推荐使用所有样本相似度的中位数(1.0),作为初值,进行迭代。
但是实践发现使用中位数不一定好,如果用若干倍可能好一些。
相似度越大,说明越想做聚类中心
相似度越小,说明越不想做聚类中心
该算法的时间复杂度太高,为n2,不见得合适。
数据只能是中小规模

2018-06-27 18_18_57-【邹博_chinahadoop】机器学习升级版VII(七).png

课堂问答

问:怎么知道参数调好了呢?
答:唯一的方案,就是噪声验证。

问:为什么用欧式距离相反数?
答:应都是有道理。用欧式距离倒数也可以

谱聚类

2018-06-29 16_56_48-【邹博_chinahadoop】机器学习升级版VII(七).png

如果一个矩阵是对称阵,并且是实数组成的,那么它的特征值一定是实数。


2018-06-29 16_59_06-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 16_59_55-【邹博_chinahadoop】机器学习升级版VII(七).png

如果某个算法是基于谱的,往往就是求特征值或者特征向量。
谱聚类,即通过对样本数据的拉普拉斯矩阵的特征向量进行聚类


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

拉普拉斯矩阵(Lnxn) = 相似度的对角阵(D) - 相似度的对称阵(W)
是从小到大排
L = 特征向量x特征值

2018-06-29 19_00_54-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 19_01_52-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 19_03_25-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 19_04_00-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 17_55_15-【邹博_chinahadoop】机器学习升级版VII(七).png

如图,对K维数据做聚类,可以选择K-Means算法,喂给K维的K均值聚类,则最终结果就是我们想要的谱聚类的结果。

课堂问答

问:DW是什么?
答:D是我们的度矩阵,W是我们的权值矩阵,任何两个样本求相似度

问:不是从小到大么?
答:是从小到大排列

问:奇异值分解?
答:确实非常像奇异值分解,也像PCA(主成分分析)。
如图,可以说明如何从n维降维到k维


2018-06-29 18_02_49-【邹博_chinahadoop】机器学习升级版VII(七).png

问:前k大,这个k个维度选多少合适呢?
答:如果选择性别,则分为男性,女性,未知,三个即可。
如果选择年龄段,就麻烦很多。
在谱聚类中有从小到大排列的n个样本,记为:
λ1,λ2,...,λn
则δi = λi+1 - λi,则能算出:
δ1,δ2, ...,δn-1
这n个值,谁大,我们就认为其后者-前者差值最大,大的位置上,前面的i个应该是一个部分,后面则是另外一部分。则将k取i的值即可

问:W-D的理论基础?
答:谱聚类应该是切割图推导的一个结论。
如图,对权值进行簇的划分,需要使得样本被切断,且两个簇的样本个数不要差别太大。
左边记为A,右边记为A',则左边簇的边记为i,右边簇的边记为j。
对于Wij/|A| + Wij/|A'|,使得分割结果不会过分差异过大。
如此继续推,得到L = D - W

2018-06-29 18_16_40-【邹博_chinahadoop】机器学习升级版VII(七).png

2018-06-29 18_36_58-【邹博_chinahadoop】机器学习升级版VII(七).png

可以继续推论:
D-1·L = D-1 (D - W) = I - D-1·W
此时是从小到大排

问:K_means和谱聚类要给k值,DBSCAN和密度聚类不需要是么?
答:是的

额外讲解


2018-06-29 18_49_44-【邹博_chinahadoop】机器学习升级版VII(七).png

2018-06-29 18_51_42-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 18_52_45-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-29 18_55_09-【邹博_chinahadoop】机器学习升级版VII(七).png

切割图是了解谱聚类的一把钥匙。


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

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

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

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

这三个拉普拉斯矩阵,使用最多的是随机游走拉普拉斯矩阵。

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

下图是通过谱聚类实现的,但是K-Means算法搞不定


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

说明当nxn更改为nxk之后,丢掉一部分样本,降维之后效果反而还更好了。从这个意义理解,PCA(主成分分析)干的是这个事情,谱聚类也是干的这个事情。

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

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

课堂问答

问:在拉普拉斯矩阵的特征向量上做k-means,那么有没有在拉普拉斯矩阵的特征值上做密度聚类的情况呢?
答:本质上做k-均值聚类,本来求的拉普拉斯矩阵,应该求在整数域上的解,那才叫做聚类。因为一个样本,属于且只属于一个类别。我们先把整数域上的结论,放在实数域的情况中去做,然后将它强制转换为整数域上去做。
建议先应用,再去推理论

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

往往是利用实际数据,求相似度,然后将标签传递下去。

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

你可能感兴趣的:(机器学习笔记 - 17. 聚类(下)(讲师:邹博))