数据挖掘笔记 —— 绪论、数据预处理、聚类分析

目录

一.绪论

1.数据挖掘定义

2.数据挖掘的产生与发展

3.大数据特征

二.数据预处理

1.数据预处理的目的

2.数据清理

3.数据集成和数据转换

4.数据归约

5.数据离散化和概念分层

5.特征选择与提取

三.聚类分析

1.基本概念

2.聚类分析算法分类

3.k-means 算法

4.k-means 算法改进

4.1 改进思路分析

4.2 k-modes 算法

4.3 k-prototype 算法

4.4 k-modes 算法 VS k-prototype 算法

4.5 K-中心点算法(PAM)

5.层次聚类算法

5.1 AGNES (AGglomerative NESting)算法(多到少)

5.2 DIANA(Divisive ANAlysis)算法(少到多)

6.BIRCH算法

7.密度聚类算法


一.绪论

1.数据挖掘定义

  • 数据挖掘定义:从大量的、不完全的、有噪声的、随机的数据中,提取潜在有用的信息和知识的过程。
  • 数据挖掘过程:数据整理、数据挖掘、结果的解释评估。
  • 数据挖掘是一个反复迭代的人机交互处理过程。

2.数据挖掘的产生与发展

2.1 数据分析师介绍

  • 互联网具有 数字化和互动性 的特征,给数据搜集、整理、研究带来了革命性的突破。
  • 抽样调查 是最经常采用的数据获取方式,主要原因就是大范围普查的成本太高。
  • 与传统的数据分析师相比,互联网时代的数据分析师面临的不是数据匮乏,而是 数据过剩

2.2 数据处理的类型

  • 操作型处理(OLTP):数据的收集整理、存储、查、增、删、改操作。
  • 分析型处理(OLAP):数据的再加工,复杂的统计分析。

2.3 数据仓库

  • 关系型数据库 RDBMS: Oracle, SQL Server, DB2, MySQL等等。
  • 多维数据仓库 Data Warehouse: Essbase, TM1, BW, SQL Server AS, Intcube OLAP等等。
  • 关系型数据库的语法标准是 SQL, 多维数据仓库的语法标准是 MDX。不支持MDX的,不能称为数据仓库产品。

3.大数据特征

  • 大数据具有自己显著的特征.,如:4V属性(技术) :
  1. 数据规模大(Volume) :需要 数据挖掘 技术
  2. 数据聚集快(Velocity) :需要 高速数据流挖掘 技术
  3. 数据类型多(Variety) :需要 数据库 web挖掘 多媒体挖掘 技术
  4. 数据价值大(Value).:数据转换成知识 潜在知识作用大 用全部数据发现有用信息

二.数据预处理

1.数据预处理的目的

  • 数据清理:通过填补空缺数据平滑噪声(有错的)数据,识别、删除孤立点,并纠正不一致的数据、
  • 数据集成:将来自不同数据源的数据合并成一致的数据存储、
  • 数据变换:将数据转换成适于挖掘的形式的预处理过程、
  • 数据归约:从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集与原有数据集基本相同。

2.数据清理

  • 常用方法如下:
  1. 使用属性的平均值填补空缺值,忽略了特殊性。
  2. 使用与给定元组属同一类的所有样本的平均值:适用于分类数据挖掘。
  3. 使用最可能的值填充空缺值,可使用回归、贝叶斯等方法确定空缺值,这是最常用的。

  • 噪声数据去除方法如下:
  1. 分箱:
  2. 聚类:
  3. 回归处理:
  4. 计算机和人工检查结合

3.数据集成和数据转换

  • 数据集成会导致 数据冗余

  • 常用的数据转换方法如下:
  1. 平滑:包括分箱、聚类和回归 聚集:
  2. 对数据进行汇总和聚集操作 Avg(), count(), sum(), min(), max(),…

  • 在正式进行数据挖掘之前,尤其是使用基于对象距离的挖掘算法时,必须进行数据的 规范化

  • 数据变换规范化常用方法如下:
  1. 最小-最大规范化:
  2. 零-均值规范化(z-score规范化):
  3. 小数定标规范化:

4.数据归约

(1)数据立方体聚集: 

(2)维归约:删除不相关的属性(或维),减少数据库的规模。【属性子集选择】

(3)数据压缩 :无损压缩、有损压缩。

(4)数值归约:直方图; 聚类; 取样。


5.数据离散化和概念分层

  • 离散化分层:将气温划分为:冷、正常、热。
  • 概念分层:可以用树表示,成年包括青年、中年、老年,青年包括....

5.特征选择与提取

  • 特征选择:从一组特征中厕最有效的,减少特征。
  • 特征提取(降维):将特征重新排列组合,不减少特征。

三.聚类分析

1.基本概念

  • 聚类(Cluster):划分的类是未知的,聚类前并不知道将要划分成几个组和什么样的组
  • 簇的形成完全是 数据驱动 的,属于一种 无指导的学习方法
  • 分类(Classification):事先定义好类别,类别的数量在过程中 保持不变
  • 使用 距离 衡量对象间的相异度,距离越近越相似
  • q=1,d 称为曼哈坦距离(不常用)
  • q=2,d 称为欧氏距离(常用)

  • 好的聚类算法:高的簇内相似性(簇内距离小)、低的簇间相似性(簇间距离大)。
  • 数据集S的一个聚类C={C1,C2,…,Ck},它的质量包括 每个簇Ci的质量 和 C的总体质量。
  • 前者用 簇内距离 来刻画,后者用 簇间距离 来衡量。

2.聚类分析算法分类

  • 按照聚类算法 所处理的数据类型,可分为以下三种:
  1. 数值型数据聚类算法:所分析的数据的属性只限于数值数据
  2. 离散型数据聚类算法:只能处理离散型数据
  3. 混合型数据聚类算法:能同时处理数值和离散数据
  • 按照聚类的 相似性度量标准,可分为以下三种:
  1. 基于距离的聚类算法:用距离来衡量数据对象之间的相似度,如k-means、k-medoids、BIRCH、CURE等算法。
  2. 基于密度的聚类算法:相对于基于距离的聚类算法,基于密度的聚类方法主要是依据合适的密度函数等。
  3. 基于互连性(Linkage-Based)的聚类算法:通常基于图或超图模型。高度连通的数据聚为一类。
  • 按照聚类算法的思路划分,可分为:

3.k-means 算法

3.1 算法详细步骤

  • 设数据集S={(1,1), (2,1), (1,2), (2,2), (4,3), (5,3), (4,4), (5,4)},令k=2, 试用 k-means算法 将 X 划分为 k个簇。
  • 数据集 S 可表示为一张二维表:
  • 因为 k=2,故S的聚类 C={C1,C2},由 k-means算法 的循环计算过程如下:
  • (1) 任选 X1=(1,1), X3=(1,2) 分别作为 簇的中心,即 C1={x1} 和 C2={x3};
  • (2) 第一轮循环:计算各数据点的归属:         
  • ①计算X2的归属:因为 d(X2,X1)2= 1, d(X2,X3) 2=2,且1< 2,所以 X2 归 X1代表的簇,即C1={X1,X2};  
  • ②计算X4的归属:因为 d(X4,X1)2= 2, d(X4,X3) 2=1,且 2>1,所以 X4 归 X3代表的簇,即C2={X3,X4};     
  • ③同理 X5 , X6, X7, X8 也归入 X3 代表的簇;
  • ④故得初始簇为:C1={X1,X2}, C2={X3,X4,X5,X6,X7,X8};
  • ⑤重新计算得 C1 和 C2 的 中心点 分别是:
  • (3)第二轮循环:将X1, X2,…,X8分配到最近的簇中心,重复第一轮循环,最后又能得到两个簇 和 新的 中心点;
  • 不断循环到 簇中心已没有变化,算法停止;
  • 输出 S 的聚类: C={C1,C2}={{X1,X2,X3,X4}, X5,X6,X7,X8}}


3.2 优缺点

优点:

  1. k-means算法简单、经典,常作为其它聚类算法的参照或被改进。       
  2. k-means算法以k个簇的误差平方和最小为目标,当簇是密集的,且簇与簇之间区别明显时,其聚类效果较好。  
  3. k-means算法处理大数据集高效,具较好的可伸缩性

缺点:

  1. k-means算法对初始中心点的选择比较敏感。
  2. k-means算法对参数k比较敏感。
  3. 在连续属性的数据集上很容易实现,但在具有离散属性的数据集上却不能适用。
  4. 主要发现圆形或者球形簇,对不同形状和密度的簇效果不好。
  5. k-means算法对噪声和离群点非常敏感。

4.k-means 算法改进

4.1 改进思路分析

  • k-means算法 在实际计算中 可能会出现 空簇,导致算法下一 轮循环无法进行
  • 选择 替补中心 的方法:
  1. 选择一个距离当前任何中心最远的,并可消除 对总平方误差影响最大 的点
  2. 从最大簇中选一个替补,并对该簇进行分裂
  • 股票市场交易分析,一些明显的 离群点 可能是最令人感兴趣的
  • k-modes 算法:离散数据 快速聚类,保留 k-means算法 的效率,同时将应用范围扩大到 离散数据 
  • k-prototype 算法:离散与数值属性混合数据 进行聚类,定义了对数值与离散属性都计算的相异性度量标准
  • k-中心点算法:不采用 簇中平均值 作为参照点,选用 簇中位置最中心的 对象,即 中心点 作为参照点

4.2 k-modes 算法

  • 记录之间 相似性D 计算公式:比较记录所有属性,属性值不同则 D+1,D越大,记录越不相似 
  • 更新簇中心:使用簇中 每个属性 出现频率最大的 属性值 代表 簇中心的属性值
  • 例如:对于簇{[a,1] [a,2] [b,1] [a,1] [c,3]},簇中心为[a,1]

4.3 k-prototype 算法

  • 混合属性  相似性D 度量标准:数值属性 采用 K-means算法 得到P1,离散属性 采用 K-modes算法 的得到P2,D = P1 + a*P2,a 是权重如果觉得离散属性重要,则增加 a,否则减少 a,a=0 时即只有数值属性
  • 更新簇中心:结合 K-means 与 K-modes 的簇中心更新方式

4.4 k-modes 算法 VS k-prototype 算法

  • 这两种方法将 只针对 数值属性的 k-means算法,扩展到 可以解决 离散属性与混合属性
  • k-modes算法 时间复杂度更低 但还存在如下问题:      
  1. K值的确立       
  2. k-prototype 权重 a 的确立      
  3. k条初始记录的选取

4.5 K-中心点算法(PAM)

4.5.1 基本思想

  • PAM:是 聚类分析中 基于划分的 聚类算法,选用 簇中位置最中心的 对象 作为 代表对象(中心点)
  • K-中心点算法(PAM)算法思想:
  • 随机寻找 k个 中心点作为初始中心点
  • 判断 一个非代表对象 是否是 当前代表对象的好替代(使 平方误差值E 减少 的对象),替换原中心点
  • 重新分配时,替换的总代价 = 每个对象 到 新中心点的距离变化 的累加和
  • 如果总代价是负的,那么实际的平方 - 误差将会减小,可以替换中心点;若总代价是正的,就不可以替换
  • 代价计算的四种情况(离谁近给谁):A、B 是两个原中心点,P 替换 B 作为新的中心点,场中存在点 O
  1. O 隶属于 中心点对象 B,B 被 P 替代,O 距离 A 近,则 O 被分配给 A
  2. O 隶属于 中心点对象 B,B 被 P 替代,O 距离 P 近,则 O 被分配给 P
  3. O 隶属于 中心点对象 A,B 被 P 替代,O 距离 A 近,则 O 被分配给 A
  4. O 隶属于 中心点对象 A,B 被 P 替代,O 距离 P 近,则 O 被分配给 P

4.5.2 PAM 算法实例

  • 若中心点 AB 分别被 非中心点 CDE 替换,需要计算下列代价:    
  • TCAC表示:中心点A 被 非中心点C 代替的代价,TCBE表示:中心点B 被 非中心点E 代替的代价,其他同理
  • 用 中心点A 被 非中心点C 代替的代价计算过程作为例子:
  •  含义:中心点A 被 非中心点C 代替时,D的代价。(替换后距离 - 替换前距离)
  • A被C替换以后,因为A离B 比 A离C近,A被分配到B簇,CAAC=d(A,B)-d(A,A)=1。
  • B是中心点,A被C替换以后,B不受影响,CBAC=0。
  • C是新中心点,A被C替换以后, CCAC=d(C,C)-d(C,A)=0-2=-2。
  • D原先属于A簇,A被C替换以后,离 D最近的中心点是C,CDAC=d(D,C)-d(D,A)=1-2=-1。
  • E原先属于B簇,A被C替换以后,离 E最近的中心点是B,CEAC=0。
  • 因此,TCAC=CAAC+ CBAC+ CBAC+ CDAC+ CEAC=1+0-2-1+0=-2。(以上累加)
  • 各点 替换 中心点A 的代价:
  • 各点 替换 中心点B 的代价:
  • 通过上述计算,已经完成了 k-中心点算法的 第一次迭代。
  • 在下一迭代中,将用其他的非中心点{A、D、E}替换中心点{B、C},找出具有最小代价的替换。
  • 一直重复所有迭代过程,直到代价不再减小为止。

4.5.3 k-中心点算法 性能分析

  1. 消除了 k-平均算法 对 孤立点 的敏感性
  2. 不易被 极端数据 影响,方法更健壮,但执行代价高
  3. 必须指定聚类数目k,并且 k的取值 对 聚类质量 影响很大 
  4. 对 小的数据集 非常有效,对 大数据集 效率不高,特别是 n 和 k 都很大的时候

4.5.4 K-中心点 VS K-means

  • 共同缺点:事先得表示K值
  • K-means:适合处理 分群数据明确集中的 数据集,只适合于数值数据
  • K-中心点:适合处理 存在噪声 或 离群点的数据集,计算较为复杂烦琐

5.层次聚类算法

  • 凝聚的层次聚类:一种自底向上的策略,首先将每个对象作为一个簇,然后合并原子簇为越来越大的簇,直到某个终结条件被满足。代表算法是AGNES算法。
  • 分裂的层次聚类:采用自顶向下的策略,首先将所有对象置于一个簇,然后逐渐细分为越来越小的簇,直到达到了某个终结条件。代表算法是DIANA算法。

5.1 AGNES (AGglomerative NESting)算法(多到少)

  • 初始步:每个对象为一个簇:{X1},{X2},{X3},{X4},{X5},{X6},{X7},{X8}          
  • 第1步:使用 簇间中心距离平方,此例开始时有8个簇,需计算28个簇间距离平方
  • d(X1,X2)2= d(X1,X3)2= d(X2,X4)2= d(X3,X4)2= 1        
  • d(X5,X6)2= d(X5,X7)2= d(X6,X8)2= d(X7,X8)2= 1   
  • 其它对象之间的中心距离平方都大于1,数据对象坐标编号小者顺序优先合并,即选择{X1},{X2}合并为{X1,X2}
  • 即得 7个簇{X1,X2},{X3},{X4},{X5},{X6},{X7},{X8}
  • 第2步:重新计算簇{X1,X2}的中心点为C(1)=(1, 1.5),并增加计算C(1)与{X3},…,{X8}的距离平方
  • d(C(1),X3)2=1.25,d(C(1),X4)2=1.25 其它d(C(1),X5)2,…
  • 因d(X3,X4)2=1,故簇{X3}和{X4}合并为{X3,X4}
  • 第3步:重新计算簇各个簇的中心点为……重复上面步骤,得到下表:
  • 算法性能分析:
  1. AGNES算法思想比较简单,但经常会遇到 合并点难以选择 的困难
  2. AGNES算法的时间复杂性为O(n2)
  3. 这种聚类方法 不具有 很好的可伸缩性
  4. 该算法仅可用于 规模较小的 数据集

5.2 DIANA(Divisive ANAlysis)算法(少到多)

  • 算法要使用 簇的直径 平均相异度 两种测度方法
  • 初始步:将所有对象作为一个簇Co={X1,X2,X3,X4,X5,X6,X7,X8}   
  • 第一步:为将Co分裂成两个簇,要计算每个对象Xi到其它对象Xj (j=1, 2, …, 8; i≠j}的 平均相异度(平均距离)
  • 第一轮平均相异度:
  • d({X1},{*}) 和 d({X8},{*})=2.96 是最大平均距离,按照 对象下标编号小者优先 原则,将X1从Co中分裂出去
  • 即得两个新簇:Cs={X1},Co={X2,X3,X4,X5,X6,X7,X8}
  • 第二步:从Co={X2,X3,X4,X5,X6,X7,X8}中取一点X2,计算 它到Cs最小距离 和 到Co中其它点的最小距离
  • 因d(X2,Cs) <= d(X2,X4),所以将X2从Co中分裂出去给Cs
  • 即得两个新簇:Co={X3,X4,X5,X6,X7,X8},Cs={X1 , X2}
  • 第三步:不断重复一二步,得到:Co={X5,X6,X7,X8}, Cs={X1 , X2, X3, X4}
  • 扩展:如果指定k=4,则算法需要进入第二轮和第三轮循环
  • 第二轮循环 FOR h=2,得聚类:C={{X1, X2, X3},{X4},{X5,X6,X7,X8}}={C1, C2, C3}
  • 第三轮循环 FOR h=3,得聚类:C={{X1, X2},{ X3},{X4},{X5,X6,X7,X8}}={C1,C2,C3,C4}
  • 即 DIANA算法 得到了包括 4个簇的 聚类,算法结束
  • 4个簇聚类的图不如 2个簇聚类的图靠谱,故 DIANA算法 对 k值的选取 也是敏感的
  • 算法性能分析:
  1. 时间复杂性为O(n2)
  2. 不具有很好的可伸缩性
  3. 在 n 很大的情况就不适用


6.BIRCH算法

  • BIRCH:利用 层次方法的平衡 迭代规约和聚类
  • BIRCH算法 利用 树型结构(类似于平衡B+树) 快速聚类
  • 利用 有限内存 完成对大数据集的高质量聚类,同时通过 单遍扫描数据集 最小化 I/O代价

6.1 聚类特征

  • 聚类特征(CF)是 BIRCH增量聚类算法的核心,聚类特征树(CF树)中的节点都由CF组成
  • CF中存储 簇中所有数据点的特性统计和,基于这个特征,BIRCH聚类可以很大程度对数据集 进行压缩
  • CF是一个三元组,代表了簇的所有信息: CF=(N,LS,SS)    
  • N是 簇中样本数量,LS是 N个样本点的向量和,SS是 N个样本点各个特征的平方和
  • CF可以求和:CF1=(n1,LS1,SS1),CF2=(n2,LS2,SS2),CF1+CF2=(n1+n2, LS1+LS2, SS1+SS2)
  • 簇C1 有 3个数据点:(2,3),(4,5),(5,6), 则CF1 = {3,(2+4+5,3+5+6),(2²+4²+5², 3²+5²+6²)} = {3,(11,14),(45,70)}

6.2 聚类特征树

  • CF树存储了层次聚类的簇的特征,它有三个参数:枝平衡因子β、叶平衡因子λ、空间阈值τ
  1. 枝平衡因子β(内部节点的最大CF数)
  2. 叶平衡因子λ(叶子节点的最大CF数)
  3. 空间阈值τ(叶节点每个CF的最大样本半径)
  • 非叶节点中 包含不多于 β个 形如[CFi,childi] 的节点
  • 叶节点中 包含不多于 λ个 形如[CFi] 的条目,每个条目不是简单的数据点,而是簇
  • 空间阈值τ:用于约束的树的大小,叶节点内各条目对应簇的半径C不得大于τ,τ越大,树越小
  • 聚类特征树的生成:
  • BIRCH算法步骤: 
  1. 阶段一:扫描数据集,建立初始的CF树(一个数据的多层压缩,保留数据内在的聚类结构),当一个对象被插入到最近的叶节点(子聚类)中时,随着对象的插入,CF树被动态地构造,故 BIRTH方法对增量或动态聚类非常有效
  2. 阶段二:采用某个聚类算法对 CF树的叶节点进行聚类。此阶段可以执行任何聚类算法
  • BIRCH算法的主要优点:     
  1. 节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针
  2. 聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快
  3. 可以识别噪音点,还可以对数据集进行初步分类的预处理
  • BIRCH算法的主要缺点有:
  1. 由于CF Tree对每个节点的CF个数有限制,导致聚类的结果可能和真实的类别分布不同.
  2. 对高维特征的数据聚类效果不好,如果数据集的分布簇不是类球型簇,则聚类效果不好
  3. 由于每个节点只能包含一定数目的子节点,最后得出来的簇可能和自然簇相差很大
  4. BIRCH算法在整个过程中一旦中断,一切必须从头再来

7.密度聚类算法

  • 密度聚类算法的指导思想:只要一个区域中对象的密度大于某个阈值,就把它加到与之相近的簇中去
  • 可发现任意形状的簇,对噪声数据也不敏感
  • DBSCAN算法 是基于密度的聚类算法代表
  • 假设给定Σ=2.5,MinPts=8,则点 X就是S的一个核心对象:
  • 但如果指定 MinPts=10,即使 Σ取值不变,X也不再是S的核心对象了
  • Y在那个邻域里称作 X到Y直接密度可达,而Z就不是直接密度可达
  • 从X到Y关于(Σ,MinPts)是 密度可达的:
  • Y和Z关于(Σ,MinPts)是 密度相连的:
  • 核心对象、边界点、噪声点:
  • DBSCAN算法例题:
  • 在S中选择X1,以 X1为中心,Σ=1半径的圆内仅包含2个点{ X1,X4},即Σ( X1)=2<MinPts,因此它不是核心点
  • X1:不是核心点
  • X2:不是核心点
  • X3:不是核心点
  • 以 X4为中心,Σ=1为半径的圆内包含5个点{ X1, X3, X4, X5, X10},即Σ( X4)=5>=MinPts
  • 因此 X4是关于密度(Σ=1,MinPts=4)的一个核心点 / 对象:
  • X4直接密度可达X10 ,以 X10为中心,Σ=1半径的圆内包含4个点{ X10, X4, X9, X12 },即Σ(X1)=4=MinPts
  • 因此 X10也是一个核心对象,直接密度可达X4, X9, X12:
  • 从X4  出发密度可达的点有:直接密度可达4个,密度可达3个
  • 因此 以核心点 X4出发密度可达的所有对象形成的簇,记作C1={ X1, X3, X4, X5, X9, X10, X12}
  • 在S中选择一点X5,由于X5已在簇C1中,因此无需判断是否为核心点,继续选择下一个点
  • 在S中选择一点X6,它也不是核心点,继续选下一个点:
  • 在S中选择一点X7,它是核心点:
  • 因此 以核心点X7出发密度可达的所有对象形成的簇,记作 C2={ X2, X6, X7, X8, X11}
  • 类似地,依次选择一点X8, X9, X10, X11, X12,其计算结果汇总于下表:
  • 聚类结果:

  • DBSCAN算法优点:
  1. 不需要事先知道要形成的簇的数量,可以发现任意形状的簇
  2. 能够识别出噪声点,可以检测离群点
  3. 对于数据集中样本的顺序不敏感

  • DBSCAN算法缺点: 
  1. 不能很好反映高维数据
  2. 对用户定义的密度(ε,MinPts)参数是敏感的,即 ε和 MinPts的设置将直接影响聚类的效果
  3. 如果样本集的密度不均匀、簇间距离相差很大时,聚类质量较差
  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lyrelion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值