I . 聚类 ( Cluster ) 概念



1 . 聚类简介 : 已知 原始的数据集 , 没有类标签 , 没有训练集 , 测试集 , 数据集所有属性已知 ; 设计聚类算法 , 根据聚类算法将数据集进行分组 ; ( 数据集 -> 聚类算法 -> 数据分组 )


① 没有类标签 : 虽然将数据集分成若干子集 , 但是以什么依据分 , 事先是不知道的 ;

② 没有训练集 : 分类操作中 , 将数据集先分成训练集 和 测试集 , 但是在聚类中 , 只有一个数据集 , 聚类算法分析整个数据集 , 学习训练出以什么标准进行聚类 , 然后将相似的数据样本分组 , 这就是聚类结果 ;

③ 聚类分组 : 给定数据集 , 有完整的属性值 ; 相似的数据放在同一组 , 不相似的数据放在另外一组 ;


2 . 无监督学习 : 聚类属于无监督学习类型 , 分类属于有监督学习类型 ;


3 . 聚类分析目的 : 聚类分析 希望根据数据的特征 , 可以是 1 1 1 个特征 , 也可以是若干特征 , 找出数据之间的相似性 , 相似的数据放在一个数据组中 , 这里不是分类 , 要注意区分分组与分类 , 因为聚类分析中没有类别这个概念 ;


4 . 分组 与 分类 : 分别是 聚类 和 分类 的结果 ;

① 相同点 : 都是将一个数据集分成若干数据子集 ;

② 分类 : 数据子集有明确的类别标签 , 这个子集是属于哪一类的 ;

③ 聚类 : 这些数据类似 , 没有类别这个概念 , 至于为什么类似 , 以什么标准类似 , 都是不知道的 , 需要自己学习训练找出分组的标准 ;


5 . 聚类示例 :


① 要求 : 给定如下 9 9 9 个小球 , 将其进行聚类 , 没有规定按照什么标准进行分类 ;

② 先找出分类标准 : 下面的球按照颜色分 , 可以分成 红色 , 绿色 , 紫色 三类 , 聚类时 , 先要训练分类的标准 , 然后根据训练出的标准进行分类 , 这里要先知道按照颜色分类 , 然后再执行按照颜色分类的操作 ;

③ 然后进行分类 : 按照颜色的分类结果 ;

【数据挖掘】聚类 Cluster 简介 ( 概念 | 应用场景 | 质量 | 相似度 | 算法要求 | 数据矩阵 | 相似度矩阵 | 二模矩阵 | 单模矩阵 )_数据矩阵



II . 聚类 ( Cluster ) 应用场景



1 . 聚类 ( Cluster ) 应用方向 :


① 分析 数据分布 : 如数据集样本分布在空间中 , 可以先对这个数据集进行聚类分析 , 将分在一组的数据当做一个数据 , 相当于数据压缩 ;

② 分类 前预处理 : 分类时 , 先使用聚类预处理数据集 , 然后再进行分类操作 ;

③ 模式识别 ;

④ 空间数据分析 ;

⑤ 图像处理 ;


2 . 聚类应用实例 :


① 客户管理 : 将不同的客户数据集进行分组 , 分析不同分组的客户的购买模式 ;

② 城市规划 : 将城市中的房子放在一个数据集中 , 总和考虑 房子 价值 , 类型 , 用途 , 位置 , 等因素 , 对该数据集进行聚类分析 , 为数据集分组 , 便于城市规划 ;

③ 地理用途 : 将地球上不同地区的情况当做数据集 , 录入该地区的各种属性 , 聚类分析这些地区 , 并将其分组 ;



III . 聚类 ( Cluster ) 质量



1 . 聚类 ( Cluster ) 高质量 : 聚类的结果也要进行好坏评价 , 好的聚类 , 类中的数据集样本 相似程度很高 , 称为 高质量聚类 ;


2 . 高质量 聚类 要求 :


① 同一分组 : 相同分组中的数据样本 , 高度相似 ;

② 不同分组 : 不同分组中的数据样本 , 高度不相似 ;


3 . 聚类质量度量 :


① 度量相似性 : 通过 度量数据集样本的相似性 , 来判断聚类分析的质量 ; 相同分组相似 , 不同分组不相似 ;

② 发现隐含模式 : 聚类分析 发现越多 数据集样本 的 隐含模式 , 聚类分析的质量越高 ; 如有的高质量的聚类方法 , 可以将奇形怪状的聚类模式找出来 ( 下图左侧的聚类分组 ) , 有些低质量聚类分析只能分析出球状的样本分组结构 ( 下图右侧的聚类分组 ) ; 如下图左侧的聚类分组模式就比右侧的模式复杂 ;

【数据挖掘】聚类 Cluster 简介 ( 概念 | 应用场景 | 质量 | 相似度 | 算法要求 | 数据矩阵 | 相似度矩阵 | 二模矩阵 | 单模矩阵 )_相似度矩阵_02



IV . 聚类 ( Cluster ) 质量 测量



1 . 聚类 ( Cluster ) 质量 测量 : 使用 相似度 ( Similarity Metric ) , 和 不相似度 ( Dissimilarity Metric ) 来测量 ;


2 . 相似度 和 不相似度度 两个指标互反 : 相似度越大 , 不相似度越小 ; 不相似度越大 , 相似度越小 ;


3 . 相似度表示 : 使用距离表示相似度 , 用距离 d ( i , j ) d(i , j) d(i,j) 表示 ; 距离越大 , 说明相似度越低 , 距离越小 , 说明相似度越高 ;


4 . 距离函数 : 不同的数据集样本类型 , 其距离函数选择也是不同的 ;


① 标度型函数 : 有刻度的数据 , 如温度 , 距离 , 重量 等 ;

② 布尔型函数 : 适合二元类型数据 , 如 对错 , 男女 , 有无 等值 ;

③ 分类类型 : 离散型的 分类 , 取值大于 2 个 , 如颜色值 等 ;

④ 顺序等级 : 有顺序的取值 , 如班级的名次 , 比赛时的金银铜等级 等 ;

⑤ 向量变量 ;

不同数据类型的相似度计算是不同的 ;



V . 聚类 ( Cluster ) 算法要求



聚类 ( Cluster ) 算法要求 :

① 伸缩性 : 随着数据集样本数增加 , 算法复杂度应该线性增加 , 不能指数级增长 ;

② 适应性强 : 聚类算法可以处理各种类型的属性 , 如离散值 , 连续回归值 , 布尔值 , 标度值 , 向量 , 数值型数据, 字符型数据 等 ;

③ 空间中聚类形状任意 : 聚类的结果的形状可以是任意形状 , 不能局限于球状分组 ;

【数据挖掘】聚类 Cluster 简介 ( 概念 | 应用场景 | 质量 | 相似度 | 算法要求 | 数据矩阵 | 相似度矩阵 | 二模矩阵 | 单模矩阵 )_相似度矩阵_02

④ 参数输入 : 输入参数时 , 尽量避免对领域知识的要求太高 ; 如 , K-Means 要求聚类前先设置分成几组 , 这样就是对领域知识要求太高 ;

⑤ 鲁棒性好 : 可以处理 数据集样本 中的 噪声样本 和 异常样本 ;

⑥ 样本顺序 : 数据集样本 输入的顺序不应该影响聚类结果 ; 基于层次的聚类 , 不同的样本输入顺序 , 会得到不同的聚类分组结果 ;

⑦ 数据维度 : 可以处理 高维度 的 样本数据;

⑧ 用户条件 : 用户会提出各种 限定条件 , 聚类算法可以与这些要求相结合 ;

⑨ 使用性 : 可解释性 与 可使用性 好 ;



VI . 聚类 ( Cluster ) 数据矩阵



1 . 聚类要求 : 聚类是将相似的数据样本放在一组 , 给定两个数据样本 , 如何判断这两个样本的相似性呢 ;


2 . 数据矩阵 : 数据集样本通常是以 数据矩阵 的形式给出 , 该矩阵又称为 对象属性结构 ;


① 矩阵行 : 每一行代表了一个样本的输入数据 ;

② 矩阵列 : 每一列代表了样本的某个属性的值 ;

③ 矩阵示例 : 数据集样本有 p p p 个 , 每个样本有 n n n 个属性 ( 特征 ) , 那么该 数据矩阵 有 p p p n n n 列 , 是一个 p × n p \times n p×n 维的矩阵 ;

[ x 11 ⋯ x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ] \begin{bmatrix} x_{11} & \cdots & x_{1p} \\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{np} \end{bmatrix} x11xn1x1pxnp

④ 样本示例 : 数据样本是人 , 有 3 3 3 个 , 每个样本有 4 4 4 个属性 , 分别是 年龄 , 身高 , 体重 , 收入 , 其数据集是一个 3 3 3 4 4 4 列的矩阵 , 如下 :

[ 18 165 75 200000 13 151 41 0 20 153 75 800000 ] \begin{bmatrix} 18 & 165 & 75 & 200000 \\ 13 & 151 & 41 &0 \\ 20 & 153 & 75 & 800000 \\ \end{bmatrix} 1813201651511537541752000000800000



VII . 聚类 ( Cluster ) 相似度矩阵



1 . 聚类 ( Cluster ) 相似度矩阵 :


① 别称 : 相似度矩阵 , 又叫做 相异度矩阵 , 或 , 对象-对象 结构 ;

② 存储内容 : 相似度矩阵存储 数据集样本之间的相似性 , 存储 每两个样本之间 相似度值 ;

③ 存储形式 : 假设有 n n n 个样本 , 使用 n × n n \times n n×n 维矩阵表示 样本间的相似性 ; 行 和 列 表示的都是所有的样本 , 如 i i i j j j 列表示第 i i i 个样本与 第 j j j 个样本的相似度 ( i < n , j < n i < n , j < n i<n,j<n ) ;



2 . 聚类 ( Cluster ) 相似度表示 :



① 对象间的相似度表示 : 使用 d ( i , j ) d(i,j) d(i,j) 表示第 i i i 个样本与 第 j j j 个样本的相似度值 ;

② 相似度取值 : 相似度值是一个 非负数 , 两个 对象越相似 , 其值越小 ;

③ 矩阵对角线相似度值 : 对象线的值就是 样本 i i i 与 其本身进行比较 , 其相似度最小 , 取值 0 0 0 ;


3 . 矩阵示例 : 3 3 3 个样本 , 其矩阵是 3 × 3 3 \times 3 3×3 维矩阵 ; 其中对角线上的值 d ( 1 , 1 ) , d ( 2 , 2 ) , d ( 3 , 3 ) d(1, 1) , d(2, 2) , d(3, 3) d(1,1),d(2,2),d(3,3) 都是 0 0 0 ;

[ d ( 1 , 1 ) d ( 1 , 2 ) d ( 1 , 3 ) d ( 2 , 1 ) d ( 2 , 2 ) d ( 2 , 3 ) d ( 3 , 1 ) d ( 3 , 2 ) d ( 3 , 3 ) ] \begin{bmatrix} d(1, 1) & d(1, 2) & d(1, 3) \\\\ d(2, 1) & d(2, 2) & d(2, 3) \\\\ d(3, 1) & d(3, 2)& d(3, 3) \\ \end{bmatrix} d(1,1)d(2,1)d(3,1)d(1,2)d(2,2)d(3,2)d(1,3)d(2,3)d(3,3)



VIII . 聚类 ( Cluster ) 二模矩阵 与 单模矩阵



1 . 二模矩阵 : 数据矩阵称为二模矩阵 , 行 和 列 分别代表不同的意义 , 数据矩阵中行代表了样本的个数 , 列代表了样本的属性个数 ;


① 行的意义 : 样本的个数 , 第 i i i 行表示第 i i i 个样本 ;

② 列的意义 : 属性的个数 , 第 j j j 列表示第 j j j 个属性 ;

③ 矩阵值意义 : i i i j j j 列表示第 i i i 个样本的第 j j j 个属性值 ;


2 . 单模矩阵 : 相似度矩阵是单模矩阵 , 行 和 列 代表的意义相同 , 都代表数据样本本身 ;


① 行的意义 : 样本的个数 , 第 i i i 行表示第 i i i 个样本 ;

② 列的意义 : 样本的个数 , 第 j j j 列表示第 j j j 个样本 ;

③ 矩阵值意义 : i i i j j j 列表示第 i i i 个样本 与 第 j j j 个样本的相似度值 d ( i , j ) d(i, j) d(i,j) ;


3 . 矩阵转化 : 聚类算法的输入是 相似度矩阵 ( 单模矩阵 ) , 如果给出的是 数据矩阵 ( 二模矩阵 ) , 需要先将数据矩阵转化为相似度矩阵 ;