1.分类与聚类
分类
- 从特定的数据中挖掘模式,给出判断的过程
分类学习的主要过程
- 训练数据集存在一个类标记号;
- 判断其是正向数据集,还是负向数据集;
- 对数据集进行学习训练,并构建一个训练模型;
- 通过该模型对数据集进行预测,并计算结果的性能;
聚类概述
- 目的是把数据分开;
- 事先不知到如何去分;完全由算法来判断数据之间的相似性;
- 相似的数据放到一起;
- 在聚类的结论出来之前,完全不知到每一类的特点;
- 对聚类的结果需要由人的经验来分析,各类的特点;
- 聚类的思想是“物以类聚”;
- 分类是通过标签来训练得到一个模型;
- 再对新数据进行预测;
- 分类训练的数据具有标签;
聚类
- 广义上,聚类是将数据中在某些方面的相似的数据成员集中在一起;
- 一个聚类是一些数据实例的集合;
- 处于相同聚类中的数据元素彼此相似;
- 处于不同聚类中的元素彼此不同;
- 聚类中没有表示类别的分类或分组信息;
- 这些数据都没有标签;
- 聚类通常被归为无监督学习(Unsupervised Learning);
聚类算法分类
- 原型聚类:K均值聚类算法
- 层次聚类
- 密度聚类
2.K-means聚类
- 最常用的聚类算法;
- 起源于信号处理;
- 目标是将数据点划分为k个类簇;
- 是一种原型聚类算法;
K-means算法优点
- 简单,便于理解;
- 运算速度快;
K-means算法缺点:
- 要在聚类之前指定聚集的类簇数量;
K-means聚类算法的流程
- 确定k值,即将数据集聚成k个类簇或者小组;
- 从数据集中随机选择k个数据点作为质心(centroid)或数据中心;
- 分别计算每个数据点到每个质心的距离,将每个点划分到最近质心的小组;
- 当每个质心都聚集了一些点后,重新定义算法选择新的质心;
- 对每个簇,计算均值,即可得到k个新的质点;
- 迭代执行第3步到第5步,直到迭代终止条件满足为止(聚类结果不在变化);
k-means聚类与图像处理
- 图像处理中,通过k-means可以实现:
- 图像分割:
- 通过k-means可以将像素点聚类成k个簇;
- 使用每个簇内的质心点来替换簇内所有像素点;
- 在不改变分辨率的情况下,量化压缩图像颜色;
- 实现图像颜色层级分割;
- 图像聚类;
- 图像识别;
k-means聚类与图像处理优点:
- 是解决聚类问题的一种经典算法,简单、快速;
- 对大数据集,该算法效率较高;
- 结果簇密集时,效果较好;
k-means聚类与图像处理缺点:
- 必须事先给出k(要生成的簇的数目);
- 对噪声和孤立点数据敏感;
3.层次聚类
- 一种直观的算法
- 一层一层的进行聚类;
层次法(Hierachical methods)
- 先计算样本之间的距离;
- 每次将距离最近的点合并到同一个类;
- 计算类与类之间的距离;
- 将距离最近的类合并为一个大类;
- 不停的合并,直到合成了一个类;
类间距离的计算方法
- 最短距离法
- 最长距离法
- 中间距离法
- 类平均法;
层次聚类算法的分类:
根据层次分解的顺序分为:
- 自下底向上:凝聚的层次聚类算法(agglomerative or bottom-up)
- 自上向下:分裂的层次聚类算法(divisive or top-down)
凝聚层次聚类的步骤
策略
- 先将每个对象作为一个簇;
- 合并这些原子簇为越来越大的簇;
- 直到所有对象都在一个簇中;
- 或者某个终结条件被满足;
概述
- 绝大多数层次聚类属于凝聚型层次聚类;
- 只在簇间相似性的定义上不同;
采用最小距离的凝聚层次聚类的算法流程:
- 将每个对象作为一类,计算两两之间的最小距离;
- 将距离最小的两个类合并成一个新类;
- 重新计算新类与所有类之间的距离;
- 重复2和3,直到所有的类最后合并成一类;
凝聚型层次聚类算法的特点
- 没有类似k-means的全局目标函数;
- 没有局部极小问题
- 或者没有很难选择初始点的问题;
- 合并的操作是单向的,一旦合并不能撤销;
- 计算存储的代价昂贵;
层次聚类的优缺点
优点
- 距离和规则的相似度容易定义,限制少
- 不需要预先制定聚类数量;
- 可以发现类的层次关系;
缺点:
- 计算复杂度太高;
- 算法可能聚类成链状;
K-means 与层次聚类
- 每一中聚类都有其特定的数据结构
- 服从高斯分布的数据用k-means进行聚类效果较好;
- 类别之间存在层结构的数据,层次聚类效果较好;
4.密度聚类 DBSCAN
两个参数
- minPts(形成高密度区域所需要的最少点数)
算法的策略
- 由一个任意未被访问的点开始;
- 探索这个点的 邻域;
- 如果该 邻域内有足够多的点;
- 建立一个新的聚类;
- 否则,该点被标为杂音;
- 该杂音点之后可能被发现在其他的 邻域内;
- 而该 邻域可能有足够多的点;
- 那么该点取消杂音标签,加入该聚类;
优缺点
优点
- 对噪声不敏感
缺点
- 聚类的结果与参数关系较大;
5.谱聚类
- 根据数据构造一个图结构(graph);
- graph的每一个节点对应一个数据点;
- 将相似的点连接起来;
- 边的权重用于表示数据之间的相似度;
- 把该graph用邻接矩阵的形式表示出来,记为w;
- 把w的每一列元素加起来得到N个数;
- 把他们放在对角线上(其他地方都是零);
- 组成一个N*N的矩阵,记为D,并令L=D-W;
- 求出L的前k个特征值,以及对应的特征向量;
- 把这k个特征(列)向量排列在一起,组成一个N*K的矩阵;
- 将其中的每一行看做k维空间中的一个向量;
- 使用K-means算法进行聚类;
- 聚类的结果中每一行所属的类别就是原graph中的节点(也就是最初的N个数据点)分别所属的类别。
谱聚类的过程
- 构图,将采样点数据构造成一张网图;
- 切图,将网图按切边规则,切分成不同的图;
- 不同的子图就是聚类的结果;