目录

K均值聚类(K均值聚类算法ISODATA算法,EM算法)

高斯混合模型(GMM)

自组织映射神经网络(SOM)

聚类算法的评估


K均值聚类(K均值聚类算法,ISODATA算法,EM算法)

1. 简述K均值算法的具体步骤(2)

1)数据预处理,如归一化,离群点处理等

2)随机选择K个簇中心

3)定义代价函数:J=所有样本到其所分类别的距离平方和最小

4)迭代如下过程知道代价函数J收敛。

  • 对每一个样本,分配到距离最近的簇
  • 对每一个簇K,重新计算该簇的中心

2. K均值算法的优缺点是什么?如何对其进行调优?(3)

缺点:受初值和离群点的影响每次的结果不稳定,通常不是全局最优而是局部最优解,无法很好的地解决数据簇分布差别较大的情况(比如一类是另一类样本数量阿100倍)

优点:对于大数据集,K均值聚类算法相对是可伸缩和高效的,计算复杂度是O(NKt)接近于线性,N是数据对象数目,K是聚类的簇数,t是迭代的轮数。尽管算法是以局部最优结束,但是一般情况下达到局部最优已经可以满足聚类的需求。

调优的几个角度:

1)数据归一化和离群点处理

K 均值聚类本质上是一种基于欧式距离度量的数据划分方法,均值和方差大的维度将对数据的聚类结果产生决定性的影响,所以未做归一化处理和统一单位的数据是无法直接参与运算相比较的。同时,离群点或者少量的噪声数据就会对均值产生较大的影响,导致中心偏移,因此使用 K 均值聚类算法之前通常需要对数据做预处理。

2)合理选择K值

K值的选择是K均值聚类最大的问题之-,这也是 K均值聚类算法的主要缺点。 实际上,我们希望能够找到一些可行的办法来弥补这一缺点,或者说找到 K值的合理估计方法。 但是,K值的选择一般基于经验和多次实验结果。例如采用手肘法,我们可以尝试不同的K值,并将不同 K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差平方和所定义的损失函数,如下图所示。K=3时存在一个拐点,3之前曲线急速下降,之后导致误差曲线趋于平稳。手肘法认为拐点就是 K的最佳值。

手肘法是一个经验方法,缺点就是不够自动化,因此研究员们又提出了-些更先进的方法,其中包括比较有名的 Gap Statistic 万法。Gap Statistic方法的优点是不再需要肉眼判断,而只需要找到最大的 Gap statistic 所对应的 K 即可,因此该方法也适用于批量化作业。

在这里我们继续使用上面的损失函数,当分为K簇时,对应的损失函数记为Dk。 Gap Statistic 定义为Gap(K)=E(logDk)一logDk。其中 E(logDk)是 logDk的期望,一般通过蒙特卡洛模拟产生。我们在样本所在的区域内按照均匀分布随机地产生和原始样本数一样多的随机样本,并对这个随机样本做 K 均值,得到一个Dk,重复多次就可以计算出 E(logDk)的近似值。 那么 Gap(K) 有什么物理含义呢?它可以视为随机样本的损失与实际样本的损失之差。 试想实际样本对应的最佳簇数为K,那么实际样本的损失应该相对较小,随机样本损失与实际样本损失之差也相应地达到最小值,从而 Gap(K) 取得最大值所对应的K值就是最佳的簇数。Gap(K)是一个先增后减的函数。 根据定义计算 K =l,2, ... ,9 所对应的 Gap Statistic,如下图所示。 由此可见,当 K=3 时, Gap(K) 取值最大,所以最佳的簇数是 K=3

下图是一个关于Wk, log Wk, E(logWk),Gap(K)的示意图, Wk就是上面所说的Dk。

 

3)采用核函数

采用核函数是另一种可以尝试的改进方向,传统的欧式距离度量方式使得 K 均值本质上假设了各个数据簇的数据具有一样的先验概率,并呈现球形或者高维球形分布,这种分布在实际生活中并不常见。面对非凸的数据分布形状时,可能需要引入核函数来优化,这时算法又

称为核 K 均值算法,是核聚类方法的一种。 核聚类方法的主要思想是通过一个非线性映射, 将输入空间中的数据点映射到高维的特征空间中,并在新的特征空间中进行聚类。非线性映射增加了数据点线性可分的概率,从而在经典的聚类算法失效的情况下,通过引入核函数可以达到更为准确的聚类结果。

3. 针对K均值算法的缺点,有哪些改进的模型?(3)

缺点总结:

1)需要人工预先确定初始K值,且该值和真实的数据分布未必吻合

2)K均值智能收敛到局部最优,效果受到初始值很大

3)易受到噪点的影响

4)样本点只能被划分到单一的类中

K-means ++算法(K个聚类点的改进)

原始 K 均值算法最开始随机选取数据集中 K个点作为聚类中心,而 K-means++按照如下的思想选取 K个聚类中心。假设已经选取了 n 个初始聚类中心( O<n<K ),则在选取第 n+l 个聚类中心时,距离当前 n 个聚类中心越远的点会有更高的概率被选为第 n+I 个聚类中心。 在选取第一个聚类中心( n= 1 )时同样通过随机的方法。这样选择也符合我们的直觉:聚类中心的当然时互相距离越远越好。后面k-means++的执行和k-means相同。

ISODATA算法(聚类数目K的优化)

ISODATA的全称是迭代自组织数据分析法。在 K 均值算法中,聚类个数 K 的值需要预先人为地确定,并且在整个算法过程中无法更改。 而当遇到高维度/海量的数据集时,人们往往很难准确地估计出 K的大小。ISO DATA 算法就是针对这个问题进行了改进,它的思想也很直观。当属于某个类别的样本数过少时,把该类别去除;当属于某个类别的样本数过多、分散程度较大时,把该类别分为两个子类别。ISODATA 算法在 K 均值算法的基础之上增加了两个操作,一是分裂操作,对应着增加聚类中心数;二是合并操作,对应着减少聚类中心数。 ISODATA 算法是一个比较常见的算法,其缺点是需要指定的参数比较多,不仅仅需要

一个参考的聚类数量K0,还需要制定 3 个阈值。

1)预期聚类中心数K0,最终输出的聚类中心数常见范围是K0的一半,到两倍K0.

2) 每个类别所要求的最少样本数目Nmin。如果分裂后导致某个子类别所包含的样本数目小于该阈值就不会对该类别进行分裂操作。

3)最大方差Sigma。用于控制某个类别中样本的分散程度。当样本分散程度超过这个阈值,且分裂后满足1),进行分裂操作。

4)两个聚类中心之间所允许最小距离Dmin。如果两个类靠的很近(指两个类对应聚类中心之间的距离非常小),小于该阈值时,则对这两个类进行合并操作。

如果希望样本不划分到单一的类中,可以使用模糊 C 均值或者高斯混合模型。

4. 证明K均值算法的收敛性。

EM算法迭代

高斯混合模型(GMM)

高斯混合模型(Gaussian Mixed Model, GMM)也是一种常见的聚类算法,与K均值算法类似,同样使用了EM算法进行迭代计算。GMM假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就i是各个簇的高斯分布叠加在一起的结果。

1. 高斯混合模型的核心思想是什么?它是如何迭代计算的?

高斯混合模型的核心思想是,假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值 µ和方差Z是待估计的参数。 此外,每个分模型都还有一个参数Πi,可以理解为权重或生成数据的概率。高斯混合模型的公式为

高斯混合模型是一个生成式模型。通常我们并不能直接得到高斯混合模型的参数,而是观察到了一系列数据点,给出一个类别的数量K后,希望求得最佳的 K个高斯分布模型。 因此,高斯混合模型的计算,便成了最佳的均值μ,方差 Z、权重 π 的寻找。这类问题通常通过最大似然估计求解,然而此问题中直接使用最大似然估计,得到的是一个复杂的非凸函数,目标函数是和的对数,难以展开和对其求偏导。

在这种情况下,可以利用EM算法框架来求解该优化问题。EM 算法是在最大化目标函数时,先固定一个变量使整体函数变为凸优化函数,求导得到最值,然后利用最优参数更新被固定的变量,进入下一个循环。EM算法的迭代过程如下:

首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。

1 ) E 步骤。 根据当前的参数,计算每个点由某个分模型生成的概率。

2 ) M 步骤。使用 E步骤估计出的概率,来改进每个分模型的均值,方差和权重。

高斯混合模型与 K均值算法的相同点是,它们都是可用于聚类的算法,都需要指定 K值;都是使用 EM 算法来求解,都往往只能收敛于局部最优。而它相比于 K均值算法的优点是,可以给出一个样本属于某类的概率是多少,不仅仅可以用于聚类,还可以用于概率密度的估计,并且可以用于生成新的样本点。

自组织映射神经网络(SOM)

自组织映射神经网络( Self-Organizing Map , SOM )是无监督学习方法中一类重要方法,可以用作聚类、高维可视化、数据压缩、特征提取等多种用途。自组织映射神经网络融入了大量人脑神经元的信号处理机制,高着独特的结构特点。

1. 自组织映射神经网络是如何工作的?它于K均值算法有何区别?(3)

这篇博文有一个SOM聚类的例子帮助理解是如何工作的:https://blog.csdn.net/xbinworld/article/details/50818803

2. 怎样设计自组织映射神经网络并设定网络训练参数?

1)设定输出层神经元的数量

2)设计输出层节点的排列

3) 初始化权值

4)设计拓扑领域

5)设计学习率

聚类算法的评估

1. 以聚类算法为例,假设没有外部标签数据,如何评估两个聚类算法的优劣?(3)

数据聚类依赖实际需求,也依赖于数据的特征度量以及评估数据相似性的方法。为了评估不同聚类算法的性能优劣,我们需要了解厂家按的数据簇的特点。

  • 以中心定义的数据簇:这类数据集和倾向于球形分布,通常中心被定义为质心,即此数据簇中所有点的平均值。
  • 以密度定义的数据簇:这类数据集合呈现和周围数据簇明显不同的密度,或稠密或稀疏。
  • 以连通定义的数据簇:这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构。
  • 以概念定义的数据簇:这类数据集合中的所有数据点具有某种共同性质。

聚类评估的任务是估计在数据集上进行聚类的可行性,以及聚类方法产生结果的质量。这一过程又可以分为三个子任务。

1)估计聚类趋势

2)判定数据簇数

3)测定聚类质量。

在无监督的情况下,我们可以通过考察簇的分离情况和簇的紧凑情况来评估聚类的效果。此外,为了更加合理地评估不同聚类算法的性能,通常还需要人为地构造不同类型的数据集,以观察聚类算法在这些数据集上的效果,几个常见的例子如下图所示。

后记

从开始接触《百面机器学习》,当把全部章节看完,觉得这本书写的特别深入浅出,把很多机器学习的基础知识给串联起来了,虽然用电子书阅读完毕,仍然忍不住入手纸质版书本,好书就需要多看!

百面系列链接:

百面机器学习(2)——模型评估

百面机器学习(3)——经典算法

百面机器学习(4)——降维

百面机器学习(5)——非监督学习

百面机器学习(6)——概率图模型

百面机器学习(7)——优化算法

百面机器学习(8)——采样

百面机器学习(9)——前向神经网络

百面机器学习(10)——循环神经网络

百面机器学习(11)——强化学习

百面机器学习(12)——集成学习

百面机器学习(13)——生成式对抗网络

百面机器学习(5)——非监督学习相关推荐

  1. 机器学习:非监督学习

    文章目录 机器学习:非监督学习 聚类Clustering Kmean聚类 层次聚类 (Hierarchical Clustering, HC) 单连接层次聚类(single link) 全连接层次聚类 ...

  2. 吴恩达机器学习笔记-非监督学习

    聚类 之前的课程中我们学习的都是监督学习相关的算法,现在来开始看非监督学习.非监督学习相对于监督非学习来看,其使用的是未标记的训练集而监督学习的是标记的训练集.换句话说,我们不知道向量y的预期结果,仅 ...

  3. 机器学习之非监督学习——(猫狗识别案例/搭建卷积神经网络)

    监督学习 监督学习的存在它的弊端,例如对我们人类还无法分辨和归类的事物,监督学习就无法完成,所以为了弥补这个缺陷,下面我们看一下新非监督学习,它可以让计算机学会进行更加复杂的分类. 分析过程 监督学习 ...

  4. 机器学习之非监督学习与强化学习

    非监督式学习: 在此学习方式下.输入数据部分被标识,部分没有被标识,这样的学习模型能够用来进行预測,可是模型首先须要学习数据的内在结构以便合理的组织数据来进行预測.应用场景包含分类和回归,算法包含一些 ...

  5. 机器学习之非监督学习(六)——聚类(K-Means)

    K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: K-means中心思想:事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之 ...

  6. 百面机器学习(5)非监督学习

    目录 01 k均值聚类 02 高斯混合模型GMM 03 自组织映射神经网络SOM 04 聚类算法的评估 非监督学习的输入数据没有标签信息,主要包含两大类学习方法:数据聚类.特征变量关联. 数据聚类:多 ...

  7. 机器学习非监督学习—k-means及案例分析

    一.非监督学习 无监督学习,顾名思义,就是不受监督的学习,一种自由的学习方式.该学习方式不需要先验知识进行指导,而是不断地自我认知,自我巩固,最后进行自我归纳,在机器学习中,无监督学习可以被简单理解为 ...

  8. 机器学习hierarchical clustering_材料学+AI:非监督学习预测新型固态锂离子导体材料...

    2019年11月20日,丰田北美研究院的凌晨博士与马里兰大学莫一非教授合作,使用非监督学习的方法,预测了固态电池中一些新的还未用实验验证过的固态电解质.从已知晶体库中选取几千种含锂材料,其中部分材料的 ...

  9. 机器学习实践:非监督学习-8

    机器学习实践:非监督学习 1.实验描述 本实验通过scikit-learn 工具包完成非监督学习的理解和使用,其中主要包括各种聚类分析算法及其分析能力的对比,使用PCA技术达到处理高维数据的能力等内容 ...

  10. 1 监督学习与非监督学习简介--机器学习基础理论入门

    1 监督学习与非监督学习简介–机器学习基础理论入门 1.1 机器学习基本概念 什么是机器学习 机器学习: 机器学习(machine learning,ML)是一门多领域交叉学科,设计概率论.统计学.逼 ...

最新文章

  1. iOS封装HTTPS双向和单向验证
  2. Prism V2之旅(1)
  3. 在Linux 中编写并运行C语言
  4. webpack入门总结1
  5. 【Mendeley】自定义文献引用格式(cite style)并保存
  6. 永久解决VSCode终端中文乱码问题
  7. https://blog.csdn.net/sxf359/article/details/71082404
  8. 程序员 你读过的书,藏着自己的命运 | 技术类(一)
  9. ts快捷键 vscode_VS Code快捷键
  10. shell脚本入门与Netkeeper破解路由
  11. mysql插入成功返回主键_MyBatis + MySQL返回插入成功后的主键id
  12. 计算机系统缺什么安装CAD闪退咋办,CAD2016闪退怎么解决Win7
  13. tf.transpose详解(能懂版)
  14. 写收货地址代码模块的思路整理——省市联动
  15. IIS管理器无法打开。启动后,在任务栏中有,但是窗口不见了,另一种解决办法.
  16. mysql 优化查询方法,优化MYSQL查询的详细方法
  17. mysql 实现yyyyww,在java中有YYYYWW格式吗
  18. 计算机二级(c语言)重难点归纳--公共基础部分--计算机系统
  19. 366. 斐波纳契数列
  20. 决策树算法实现:泰坦尼克号乘客生存预测 (python实现)

热门文章

  1. 数据结构实验项目二:栈的基本操作及其应用
  2. pcm a律编码 c语言,PCM音频编码
  3. 从iRedMail 创建web服务学习Nginx
  4. 华为性格测试的破解方法
  5. Android 打造RxBus2.x的全面详解
  6. weblogic jdk版本升级
  7. java中object类对象转换成int对象的两种方法
  8. 小程序中视频作为页面背景
  9. Python下载和安装图文教程[超详细]
  10. 数据库--分库分表中间件--选型/对比/框架