在无监督学习中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。此类学习任务中研究最多,应用最广的是聚类。
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇。
通过这样的划分,每个簇可能对应于一些潜在的概念(类别);需说明的是,这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。
聚类的作用:
①作为一个单独过程,用于找寻数据内在的分布结构
②作为分类等其他学习任务的前驱过程。例如,在一些商业应用中需对新用户的类型进行判别,但定义用户类型对商家来说却可能不太容易,此时往往可先对用户数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用户判别新用户的类型。
原型聚类:
原型聚类亦称基于原型的聚类,此类算法假设聚类结构能通过一组原型刻画,在现实任务中极为常用。通常情形下,算法对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示,不同的求解方式,将产生不同的算法。
原型是指样本空间中具有代表性的点。
K均值算法:
最小化式9.24并不容易,找到它的最优解需考察样本集D所有可能的簇划分,这是一个NP难题。因此K均值算法采用了贪心策略,通过迭代优化来近似求解(9.24)
假定聚类簇数为k,算法开始时随机选取k个样本,作为初始均值向量
然后考察每一个样本与当前均值向量的距离分别是多少,选取最近的距离,将该样本划入距离最近的均值向量的簇中
从k个簇中分别求出新的均值向量
更新当前均值向量后,不断重复上述过程
直到第n轮迭代产生的结果与第n-1轮迭代产生的结果相同,算法停止,得到最终簇划分
K均值聚类是最基础和最常用的算法
层次聚类:
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可以采用自底向上的聚合策略,也可以采用自顶向下的拆分策略。
AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。这里的关键是如何计算聚类簇之间的距离。实际上,每个簇是一个样本集合,因此,只需采用关于集合的某种距离即可
集合间的距离计算常采用豪斯多夫距离。
显然,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,而平均距离则由两个簇的所有样本共同决定。
当聚类簇距离由,,计算时,AGNES算法被相应地称为单链接,全链接,均链接
混合高斯模型:
单高斯模型:
高斯模型是一种常用的变量分布模型。一维高斯分布的概率密度函数如下:
μ是高斯分布的均值,σ是高斯分布的标准差