《统计学习方法》第十四章聚类算法

一、写在前面

本文是《统计学习方法》第十四章聚类方法读书笔记。本书第十二章是监督学习总结,第十三章是无监督学习概述,主要是了解性知识和概述,因此本博客笔记跳过了这两章(主要没啥好写的,次要我偷懒了,嘿嘿)。本文作个人备忘用,不保证质量和延续性。
聚类算法种类较多,如层次聚类,密度聚类,K-means聚类,均值漂移聚类等等。《方法》中仅简要介绍了其中两种:K-means算法和层次聚类算法。

二、层次聚类算法

层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。层次聚类又有自上而下的聚合聚类和自下而上的分裂聚类两种方法。每个样本只属于一个类,所以层次聚类属于硬聚类。
聚合聚类开始将每个样本各自分到一类;之后将相距最近的两类合并,建立一个新的类,重复操作直到满足停止条件,得到层次化的类别。分类聚类开始将所有的样本分到一个类,之后将已有的类中相距最远的样本分到两个新的类,重复操作直到满足停止条件,得到层次化的类别。聚合聚类较为常用,此处只介绍层次聚类中的聚合聚类。
聚合聚类需要预先设定下面三个要素:
(1)距离或相似度
(2)合并规则
(3)停止条件
根据这些要素的不同组合,就可以构成不同的聚类方法。距离或相似度可以是闵可夫斯基距离、马哈拉诺比斯距离、相关系数、夹角余弦。合并规则一般是类间距离最小,类间距离可以定义为最短距离、最长距离、中心距离、平均距离等。停止条件可以是类的个数达到阈值(极端情况类的个数是1)、类的直径超过阈值。
层次聚类算法的原理和流程就说完啦,还是比较简单清晰的。下面分析一下层次聚类的优缺点:
优点
1、距离和规则的相似度容易定义,限制少
2、不需要预先制定聚类数
3、可以发现类的层次关系
缺点
1,计算复杂度太高
2,奇异值也能产生很大影响
3,算法很可能聚类成链状

三、K-means聚类

K均值聚类是基于样本集合划分的聚类算法。k均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心的距离最小。每个样本只属于一个类,所以k-means聚类也是硬聚类。

3.1学习策略

kmeans所采用的距离公式为欧式距离平方(square Euclidean distance)作为样本之间的距离:
在这里插入图片描述
注意,这里的k代表维度为m的两个向量之间对应位置相减,再开平方。
定义样本与所属类的中心之间的距离的总和为损失函数,即
在这里插入图片描述
事实上, 均值聚类的最优解求解问题是 N P NP NP困难问题。因此在现实中采用迭代取得方式进行求解。

3.2 迭代过程

首先,对于给定的中心值 ( m 1 , m 2 . . . . . . m n ) (m_1,m_2......m_n) (m1,m2......mn),求一个划分 C C C,使得目标函数最小:
在这里插入图片描述
就是说在类中心确定的情况下,将每个样本分到一个类中,使样本和其所属类的中心之间的距离总和最小。求解结果,将每个样本指派到与其最近的中心 m 1 m_1 m1的类 G 1 G_1 G1中。
然后,对于给定的划分 C C C,再求各个类的中心 ( m 1 , m 2 . . . . . . m n ) (m_1,m_2......m_n) (m1,m2......mn),使得目标函数极小化:
在这里插入图片描述
重复以上两个步骤,至到划分不再改变,得到聚类结果。通俗地说,就是首先指定聚类个数个中心点,然后将所有点分到最近的类,然后各个类重新计算中心点使得类内点距离中心点距离之和最短,得到新一轮的中心点;再将所有样本点以新一轮中心点为中心分到最近的中心点,如此循环迭代,直到分类结果不再变化。

3.3 算法总结

kmeans有以下特点:
(1)类别数k预先指定;
(2)以欧式距离平方表示样本之间的距离或相似度,以中心或样本的均值表示类别;
(3)以样本和其所属类的中心之间的距离的总和为优化的目标函数;
(4)得到的类别是平坦的,非层次化的(通俗的理解,数据之间不存在上下关系);
(5)算法是迭代算法,不能保证得到全局最优。
啊,这简直是学习《统计学习方法》以来最短最轻松的笔记,哈哈哈哈!!

你可能感兴趣的:(《统计学习方法》读书笔记,算法,机器学习,聚类)