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

该笔记基于视频:机器学习升级版VII(讲师:邹博)

概念

之前做LR(Logistic Regression), SVM(支持向量机), DT(决策树), RF(随机森林),都会根据一堆特征值(X),得到分类(y)。
但是如果没有分类(y),只有x,则只能够通过x自身的相似性,分成若干个部分。
我们将这若干个部分,称为“簇”。
比如n个样本,分为k个簇,则我们称其做了k个簇的聚类。

机器学习有监督与无监督

  • 有监督
    -- 回归 (Regression)
    -- 分类(Classification)
  • 无监督
    -- 几乎都是聚类 (Clustering)

使用聚类的例子

  • 自然语言处理
    -- 语义库(Corpus),构建词典
    -- 从具体文档文本,进行比对获得词向量
    -- 从而进一步获得词频数据
    -- 如果有一个词在当前文档总是重复出现,但是在其他文档不怎么出现,这个词就很重要。
    -- 比如萧峰这个词总是在天龙八部出现,但是在其他文档不怎么出现。说明萧峰对天龙八部非常重要。所以需要将萧峰这个词的比重,在天龙八部进行扩大。
    -- 进行公式化就是:tf (词的频率)/ idf(在其他文档中的频率取逆(i代表取逆))。这个公式是非常著名的对于词的权重的度量结果。


    2018-05-22 18_53_11-【邹博_chinahadoop】机器学习升级版VII(七).png

-- 如果词库的维度特别高,比如MxV,当V超过一万时,那么把相近的词聚在一堆,从一万个词降维到200个堆中去。
即将Xmxv (v >= 200)降维到Ymx200,所以X -> Y就是一次降维
-- 还可以根据矩阵乘法公式:Xmxv . Cvx200 = Ymx200
-- 其中Xmxv是我们观测到的实际存在的m个文档和词之间的矩阵;Ymx200是最终映射出来,m个文档映射低维度空间当中的一个表现方式;Cvx200,我们认为是如何做的线性的映射。
-- 所以矩阵乘法与降维,无监督学习和聚类之间,都是有一定关系的。
-- 举例: KMeans (K均值聚类)就是矩阵的分解

课堂问答

  1. 问:请问“的”是否记为词向量
    答:NLP处理中,经常设置stopword,常为助词,语气词等。即停止词,比如的,和,你等。

  2. 问:聚类的应用在哪块啊?
    答:聚类的应用,如果指望聚类做大的应用不太现实。但是用聚类做中间模块,还是靠谱的。

  • 预处理聚类
    将大类做降采样,一般这里就会使用聚类。


    2018-05-22 19_12_00-【邹博_chinahadoop】机器学习升级版VII(七).png

    注意:如何判断数据不平衡?一般来说差一个数量级就是不平衡。

  • 后处理聚类
    比如推荐系统,已经将用户分类为某种类型,然后再进行聚类。比如高价,中价,低价用户等,然后再根据不同的用户进行不同的营销手段。
    但是指望聚类做核心模块,其他算法做辅助,比如PCA, SVM,xgboost,这种可能不太合适。
    但是用卷积神经网络,SVM,xgboost做主算法,聚类做辅助算法,是合适的。
  1. 问:多音多义词怎么办?
    答:比如大理在天龙八部中是国家,但是现在却是代指云南的一座城市。之后会在主题模型中尝试解决这个问题。

  2. 问:如何分析情感,是不是就不能去某些停用词了?
    答:情感分析,还是会去停用词的。

  3. 问: Xgboost构建的决策树也随机抽出部分数据,随机选择部分变量么?是否可以理解xgboost也利用了随机森林的思想呢?那么能说xgboost是随机森林的改进和升级么?
    答:算法并没有鸿沟。其实是有可能会在比如xgboost先做一个特征的降采样,然后再去构建这些决策树。并不排斥算法的综合使用。

  4. 问:十倍以上就算是差数量级了么?
    答:是的,算不平衡数据。

  5. 问:聚类需要指定个数么?
    答:有些需要,有些不需要。

  6. 问:无监督学习虽然效果不好,如果有突破就给机器学习升级了
    答:是的,大部分学术甚至一些工业实践者是很看好无监督学习的。因为大部分数据是没标记的

本次目标

2018-05-23 10_02_45-【邹博_chinahadoop】机器学习升级版VII(七).png

聚类的定义

2018-05-23 10_03_54-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-05-24 10_07_36-【邹博_chinahadoop】机器学习升级版VII(七).png

聚类如何定义相似度:距离可以看成相似度相反的定义。
即相似度越大,距离越小;
相似度越小,距离越大。
最简单的距离计算就是欧式距离


2018-05-24 10_11_14-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-05-24 10_13_38-【邹博_chinahadoop】机器学习升级版VII(七).png

此时距离为x向量与y向量之间的二范式,即它们之间平方和的开方根。即欧式距离

2018-05-24 14_08_47-【邹博_chinahadoop】机器学习升级版VII(七).png

当P等1时,即为一范式,此时我们称A与B之间的距离是街区距离,又名曼哈顿距离
2018-05-24 14_11_20-【邹博_chinahadoop】机器学习升级版VII(七).png

当P为∞时,
2018-05-24 14_16_13-【邹博_chinahadoop】机器学习升级版VII(七).png

如图,仅剩下|xk - yk|
即|AB|p = [|x1 - y1|p + |x2 - y2|p + ... + |xn - yn|p]1/p的值最终化为:|xk - yk|

将上述各个距离公式做总结,统称为闵可夫斯基距离
做相似度,需要定义范数P,即定义为几阶的,往往使用平方,但有时也使用3次方或4次方。表明衰减的快一些。

课堂问答

问:上周刚听了关于距离的数学课,科普了什么拓扑,距离,范数,欧式空间,希尔伯特空间,测度,勒贝格积分什么的。咱们机器学习如果研究的深入了,能用上这些知识么?
答:用不上。我们用的是应用数学还是最基本的应用数学。

问:为什么需要用到无穷大阶的距离呢?
答:只是一种定义方式,我们看看范式如何选择而已

杰卡德相似系数

2018-05-24 14_33_16-【邹博_chinahadoop】机器学习升级版VII(七).png

亦即交并比
往往可以作为相似性的度量
如果A与B完全重合,则交并比为1
如果A与B交集为空,则交并比为0
应用领域:

  • 图像识别


    2018-05-24 14_41_25-【邹博_chinahadoop】机器学习升级版VII(七).png
  • 推荐系统
  • 文章相似度

题外话:机器学习中的算法很重要,在众多算法中选择哪一个,更重要

余弦相似度

2018-05-24 14_57_47-【邹博_chinahadoop】机器学习升级版VII(七).png

cosθ = x向量 与 y向量做点乘 / x向量和y向量之间模的方向
通过cosθ来衡量x与y的距离
如果值为1,方向相同,则距离最小,最相似
如果值为0,方向垂直,表示最不相似
如果值为-1,方向相反,相似性最差
对于文档,往往使用余弦相似度用于相似度的衡量
以图搜图的算法,其实本质也是用余弦相似度

Pearson相似系数

X向量: x1, x2, x3, ..., xn,将X认为是随机变量: r.v
可以计算X的均值μx,方差θx
Y向量: y1, y2, y3, ..., yn,将Y认为是随机变量:r.v
也可以计算Y的均值μy,方差θy
于是可以计算X与Y的协方差cov(X, Y),协方差是:
1/(n-1)Σi=1 to n(xix) * (yiy) 得到的。
xi的标准差θx: (1/(n-1)Σi=1 to n(xix) 2)1/2
xi的标准差θy: (1/(n-1)Σi=1 to n(yiy) 2)1/2

于是可以计算X与Y的相关系数 = cov(X, Y)/ (θx θy),即Pearson相似系数
即得到X向量与Y向量之间的一阶线性关系

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

如果令μx = μy = 0,则:
PXY = Σi=1 to nxi * yi / ((Σi=1 to nxi2)1/2 * (Σi=1 to nyi2)1/2)
即等价于:X与Y的点乘/ X的模*Y的模,即与 夹角余弦 是异曲同工的。它们二者之间是有相关性的。

2018-06-05 20_43_26-【邹博_chinahadoop】机器学习升级版VII(七).png

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

课堂问答

  1. 问:Pearson系数是线性关系,如果使用非线性的树模型,那么是不是不能用Pearson系数进行特征选择?
    答: 是的。之所以将Pearson系数与余弦相似度一起比较,也是为了说明这个问题。余弦相似度这个算法也不是放之四海而皆准,在文档相关性往往用它,在其他地方用的地方并不多。因为我们认为特征独立了。

相对熵 (K-L距离)

随机变量:
X: (x1,x2, ... , xk)
Y: (y1,y2, ... , yk)
取出不重复的变量,记为:
Dict: (a1,a2, ... , ak)
形成了字典
所以可以获得X中的变量出现的次数统计:
X: a1 a2 a3 ... ak
N: 8 0 3 ... 1 => n
概率P(x):8/n 0 3/n ... 1/n => 1
既然得到概率,则可以求信息熵:
H(X) = -Σi=1 to kPi*lnPi
同理,也可以求Y的信息熵。
由此,我们可以得到X与Y的互信息:
I(X, Y) = H(X) - H(X|Y)
或者
I(X, Y) = H(Y) - H(Y|X)

2018-06-05 20_21_50-【邹博_chinahadoop】机器学习升级版VII(七).png

相对熵相对Pearson相似系数的好处:如果D(p||q) == 0,则p与q一定是独立的。
但是如果Pearson相似系数 = 0, 我们只能说x与y是不相关的。
但是相对熵并不是对称的,p到q的距离与q到p的距离,一般不相同
但是可以通过
W(p||q) = 1/2 (D(p||q) + D(q||p)),得到加权距离,即对称的。

Hellinger距离

即为对称的方式


2018-06-05 20_36_25-【邹博_chinahadoop】机器学习升级版VII(七).png

当α为1的时候,趋近于相对熵
当α为0的时候,满足如下定义:


2018-06-05 20_37_30-【邹博_chinahadoop】机器学习升级版VII(七).png

聚类的基本思想

2018-06-05 20_44_59-【邹博_chinahadoop】机器学习升级版VII(七).png

k-Means算法

2018-06-05 20_48_22-【邹博_chinahadoop】机器学习升级版VII(七).png
2018-06-05 20_49_11-【邹博_chinahadoop】机器学习升级版VII(七).png

目的:将上图绿色的点进行二聚类
即簇的个数为两个
a图:
随机给定两个初值,分别为蓝色与红色
如何处理“随机”?
几种方法:

  1. 真的是随机取样本
  2. 根据经验进行初值划分
  3. kmean++?(没听清楚)
    b图:
    任何一个样本到这两个随机值中心的距离(一般用欧式距离),距离蓝色近的分类为蓝色,距离红色近的分类为红色
    换句话说,两个点之间取垂直平分线,一部分取红色一部分取蓝色。
    这就是第一次迭代过程。
    c图:
    之后蓝色取均值,红色取均值,构成新的蓝、红两个点
    d图:
    重新做一条垂直平分线,将所有点分成两部分
    然后定义为新的蓝色与红色
    e图:
    之后蓝色取中心,红色取中心,再次构成新的蓝、红两个点
    f图:
    重新做一条垂直平分线,将所有点分成两部分
    然后定义为新的蓝色与红色
    g图:
    之后蓝色取中心,红色取中心,再次构成新的蓝、红两个点
    h图:
    重新做一条垂直平分线,将所有点分成两部分
    然后定义为新的蓝色与红色
    i图:
    之后蓝色取中心,红色取中心,再次构成新的蓝、红两个点
    此时新的蓝红两个点,与之前两个点的距离没有那么远了
    如此,整个过程就结束了
    这就是k-均值的过程。

课堂问答

问:k-means不再迭代计算的条件是,i+1次计算的中心与i次计算的中心相等么?
答:k-means不再迭代计算的条件可能有多个,比如说迭代次数、簇的中心不再进行变化,最小平方误差,即MSE

问:还有k-近邻算法呢?
答:k-近邻算法是无参的监督学习算法。

问:有没有不用告诉簇几类,算法自适应聚类?
答:有,比如密度聚类。

问:这里说的平均值,是指什么的值求平均?
答:是指X的值求平均,即样本值取平均

问:初值敏感么?
答:敏感。如图:


2018-06-05 21_27_18-【邹博_chinahadoop】机器学习升级版VII(七).png

问:监督学习可以通过计算特征与Y的相关性进行特征选择,那聚类如何做特征选择呢?
答:如果做聚类特征选择的话,可以尝试做PCA(主成分分析),但是不建议这样做。因为PCA对特征没法解释。因为它会将特征之间进行加权的相乘或相加,使得特征值变得面目全非。所以,除非做中间过程,不用向用户解释特征用的是什么,权值是什么,可以尝试做PCA。

问:k-Means要求数据正态么?
答:要求。

问:样本无标签,如何使用MSE?
答:如图i:

2018-06-05 21_34_52-【邹博_chinahadoop】机器学习升级版VII(七).png

聚类已经分成蓝红两色,对蓝色点而言,均值为圆圈部分的样本,则可以:
1/|蓝色样本个数| * Σ(i=1 to |蓝色样本个数|)(Xi - μi)2
其中μ为均值,则这个值,即为蓝色样本的均方误差,即MSE
同样可以求MSE
最终可以获得:
MSE = MSE + MSE
MSE的值越小越好。

问:k如何选择最优
答:这是个大问题。


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

如图,假如K是横轴,纵轴是MSE (均方误差),圆圈中是分类的样本,样本共M个。
如果K取1, 表明所有样本取一个簇,就是方差值
如果K取2,表明所有样本取两个簇,MSE会变小了
如果K取3,MSE会变得更小
。。。
如果K取M,则一个样本为一个簇,MSE为0
无监督学习找不到极值点,但是可以根据MSE分成两段,然后取中间部分的K值
理论上K可以这么选,这也称为Elbow-method
但是K值选择需要先验知识。
如性别问题,就是三分类(男性,女性与未知),如果先验搞不定,就可以使用Elbow-method
衍生问题:

  1. 中心点是一个真实的样本点,还是一个计算值?初始值呢?
    答:中心点不一定是真实的,可能是相加得到的
  2. 拐点不好判断?
    答:其实可以根据MSE,然后计算斜率,得到近似拐点。
  3. 簇中心变化率可以用来作为停止条件么?
    答:可以的

对k-Means的思考

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

可以尝试改造成为k-Mean++这个算法:
选择K个聚类中心,然后做k-Means聚类,即通过做初值的变化,从而称为k-Mean++


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

先进行聚类划分,如果发现不好,可以再次进行k-Mean聚类

k-Means的公式化解释

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

其中,Nj代表样本的个数
其实k-Means这个算法,相当于我们认为这些样本是服从混合的高斯分布,即混合高斯模型:GMM是它的理论依据。即我们认为方差相等。
驻点为对使用方差作为的目标函数,做了一次梯度下降。

课堂问答

问:实际应用中,如何将聚类和SVM算法相结合使用呢?
答:例子:如果用SVM对用户做推荐,然后用聚类进行分类营销。

问:SVM的推导为什么不用最大似然估计?
答:因为我们用SVM的时候,是通过另外一种方式给出目标函数了。而目标函数,并不是用可导的函数。

问:如果x变量中存在离散变量或均为离散变量,有方法可以进行聚类么?是否离散变量不适合进行聚类呢?
答:这里离散变量,应该是指类别数据。如有些数据不是天然适合做均值。比如喝了一瓶50度白酒,和一瓶10度啤酒,并不意味着喝了两瓶30度的白酒。因为这个不具有可加性。
如果数据是可排序的,如例2:不及格,及格,优秀,这是可排序的,但是离散的,这种数据可以用k中值聚类然后做聚类。但是用k均值聚类就不行,因为没法加。
提前看一下k-Means聚类方法总结:


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

k-Means对符合高斯混合分布,效果还是合理的,但如果不是符合高斯混合分布,效果可能就差了。

问: K中值算法是混合拉普拉斯分布么?
答:K中值算法其实就是对应混合拉普拉斯分布

Canopy算法

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

Canopy算法,做空间索引。好处是不需要指定簇的个数,只需要给定r1与r2即可。

聚类的衡量指标

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

均一性与完整性:最优值是1,最差值是0
因为均一性与完整性不能同时满足,所以我们用V-measure折中结果

ARI

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

ARI,本身是混淆矩阵的推广,取1最优,取0最差

AMI

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

取1最优,取0最差

ARI与AMI共同的缺点:必须知道Y,才能得到这些指标。
但是从逻辑上就说不通,因为我们没有Y,所以做聚类,将数据分为若干簇,但是要得到指标,必须有Y,才能做指标,才能判断好坏。
这怎么用ARI与AMI?
只能先从样本中,人工挑出一部分样本,构成x1到xn,然后人工打标签,构成y1到yn。
之后将x1与xn做聚类,比如k-Means聚类或者密度聚类或者谱聚类等等,得到结果后,然后可以用均一性,完整性,V-measure,判断孰好孰坏。
然后选择一个最优的聚类方式,上到实际当中再去做。

轮廓系数

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

不需要事先给定Y


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

层次聚类方法

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

有两个方法:

  1. 自上向下的层次聚类
  2. 自下向上的层次聚类


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

重点考虑自下向上的层次聚类,因为这个更适合于我们的一些应用。
因为自顶向下做分裂比较麻烦。
自下向上:如何来对这个聚类的当前的这些值做相似性的定义
即需要判断簇之间的相似性


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

为什么要这么认真的做簇之间的距离判定呢?
因为需要对簇做合并。


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

课堂问答

问:带标签的可以用聚类么?
答:可以的,但是没必要。因为已经有标签了。
没标签,可以用PCA
有标签,可以用QDA,LDA,做降维

问:已知某个用户最近一天的微博互动(转评赞),如何预测三天后,五天后的互动呢?
答:属于经典的时间序列的分析。可以用经典的ARIMA(差分整合移动平均自回归模型)时序分析,LSTM, RNN等。

问:不要增长太快是什么意思?
答:控制MSE中心不要太远

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右...
    我偏笑_NSNirvana阅读 39,911评论 12 145
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,843评论 1 10
  • 写在之前 因简书导入公式很麻烦,如果想获得更好的观看体验请移步https://www.zybuluo.com/ha...
    hainingwyx阅读 6,808评论 2 13
  • “美丽的梦和美丽的诗一样 都是可遇而不可求的 常常在最没能料到的时刻里出现 …… 好像你我才初初相遇” 这首席慕容...
    是梦阿阅读 495评论 0 4
  • 读书讨论组里常常有人冒出来讨论王小波。有人喜欢他的小说,为他的作品列出了必读篇;有人推崇他的杂文,总是强烈建议大家...
    大雨时行阅读 981评论 2 12