目录
一.绪论
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属性(技术) :
- 数据规模大(Volume) :需要 数据挖掘 技术
- 数据聚集快(Velocity) :需要 高速数据流挖掘 技术
- 数据类型多(Variety) :需要 数据库 web挖掘 多媒体挖掘 技术
- 数据价值大(Value).:数据转换成知识 潜在知识作用大 用全部数据发现有用信息
二.数据预处理
1.数据预处理的目的
- 数据清理:通过填补空缺数据平滑噪声(有错的)数据,识别、删除孤立点,并纠正不一致的数据、
- 数据集成:将来自不同数据源的数据合并成一致的数据存储、
- 数据变换:将数据转换成适于挖掘的形式的预处理过程、
- 数据归约:从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集与原有数据集基本相同。
2.数据清理
- 常用方法如下:
- 使用属性的平均值填补空缺值,忽略了特殊性。
- 使用与给定元组属同一类的所有样本的平均值:适用于分类数据挖掘。
- 使用最可能的值填充空缺值,可使用回归、贝叶斯等方法确定空缺值,这是最常用的。
- 噪声数据去除方法如下:
- 分箱:
- 聚类:
- 回归处理:
- 计算机和人工检查结合
3.数据集成和数据转换
- 数据集成会导致 数据冗余
- 常用的数据转换方法如下:
- 平滑:包括分箱、聚类和回归 聚集:
- 对数据进行汇总和聚集操作 Avg(), count(), sum(), min(), max(),…
- 在正式进行数据挖掘之前,尤其是使用基于对象距离的挖掘算法时,必须进行数据的 规范化
- 数据变换规范化常用方法如下:
- 最小-最大规范化:
- 零-均值规范化(z-score规范化):
- 小数定标规范化:
4.数据归约
(1)数据立方体聚集:
(2)维归约:删除不相关的属性(或维),减少数据库的规模。【属性子集选择】
(3)数据压缩 :无损压缩、有损压缩。
(4)数值归约:直方图; 聚类; 取样。
5.数据离散化和概念分层
- 离散化分层:将气温划分为:冷、正常、热。
- 概念分层:可以用树表示,成年包括青年、中年、老年,青年包括....
5.特征选择与提取
- 特征选择:从一组特征中厕最有效的,减少特征。
- 特征提取(降维):将特征重新排列组合,不减少特征。
三.聚类分析
1.基本概念
- 聚类(Cluster):划分的类是未知的,聚类前并不知道将要划分成几个组和什么样的组
- 簇的形成完全是 数据驱动 的,属于一种 无指导的学习方法
- 分类(Classification):事先定义好类别,类别的数量在过程中 保持不变
- 使用 距离 衡量对象间的相异度,距离越近越相似
- q=1,d 称为曼哈坦距离(不常用)
- q=2,d 称为欧氏距离(常用)
- 好的聚类算法:高的簇内相似性(簇内距离小)、低的簇间相似性(簇间距离大)。
- 数据集S的一个聚类C={C1,C2,…,Ck},它的质量包括 每个簇Ci的质量 和 C的总体质量。
- 前者用 簇内距离 来刻画,后者用 簇间距离 来衡量。
2.聚类分析算法分类
- 按照聚类算法 所处理的数据类型,可分为以下三种:
- 数值型数据聚类算法:所分析的数据的属性只限于数值数据
- 离散型数据聚类算法:只能处理离散型数据
- 混合型数据聚类算法:能同时处理数值和离散数据
- 按照聚类的 相似性度量标准,可分为以下三种:
- 基于距离的聚类算法:用距离来衡量数据对象之间的相似度,如k-means、k-medoids、BIRCH、CURE等算法。
- 基于密度的聚类算法:相对于基于距离的聚类算法,基于密度的聚类方法主要是依据合适的密度函数等。
- 基于互连性(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 优缺点
优点:
- k-means算法简单、经典,常作为其它聚类算法的参照或被改进。
- k-means算法以k个簇的误差平方和最小为目标,当簇是密集的,且簇与簇之间区别明显时,其聚类效果较好。
- k-means算法处理大数据集高效,具较好的可伸缩性
缺点:
- k-means算法对初始中心点的选择比较敏感。
- k-means算法对参数k比较敏感。
- 在连续属性的数据集上很容易实现,但在具有离散属性的数据集上却不能适用。
- 主要发现圆形或者球形簇,对不同形状和密度的簇效果不好。
- k-means算法对噪声和离群点非常敏感。
4.k-means 算法改进
4.1 改进思路分析
- k-means算法 在实际计算中 可能会出现 空簇,导致算法下一 轮循环无法进行
- 选择 替补中心 的方法:
- 选择一个距离当前任何中心最远的,并可消除 对总平方误差影响最大 的点
- 从最大簇中选一个替补,并对该簇进行分裂
- 股票市场交易分析,一些明显的 离群点
- k-modes 算法:对 离散数据
- 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算法 时间复杂度更低
- K值的确立
- k-prototype 权重 a 的确立
- k条初始记录的选取
4.5 K-中心点算法(PAM)
4.5.1 基本思想
- PAM:是 聚类分析中 基于划分的 聚类算法,选用 簇中位置最中心的 对象 作为 代表对象(中心点)
- K-中心点算法(PAM)算法思想:
- 随机寻找 k个 中心点作为初始中心点
- 判断 一个非代表对象 是否是 当前代表对象的好替代(使 平方误差值E 减少 的对象),替换原中心点
- 重新分配时,替换的总代价 = 每个对象 到 新中心点的距离变化 的累加和
- 如果总代价是负的,那么实际的平方 - 误差将会减小,可以替换中心点;若总代价是正的,就不可以替换
- 代价计算的四种情况(离谁近给谁):A、B 是两个原中心点,P 替换 B 作为新的中心点,场中存在点 O
- O 隶属于 中心点对象 B,B 被 P 替代,O 距离 A 近,则 O 被分配给 A
- O 隶属于 中心点对象 B,B 被 P 替代,O 距离 P 近,则 O 被分配给 P
- O 隶属于 中心点对象 A,B 被 P 替代,O 距离 A 近,则 O 被分配给 A
- 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-中心点算法 性能分析
- 消除了 k-平均算法 对 孤立点 的敏感性
- 不易被 极端数据 影响,方法更健壮,但执行代价高
- 必须指定聚类数目k,并且 k的取值 对 聚类质量 影响很大
- 对 小的数据集 非常有效,对 大数据集 效率不高,特别是 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步:重新计算簇各个簇的中心点为……重复上面步骤,得到下表:
- 算法性能分析:
- AGNES算法思想比较简单,但经常会遇到 合并点难以选择 的困难
- AGNES算法的时间复杂性为O(n2)
- 这种聚类方法 不具有 很好的可伸缩性
- 该算法仅可用于 规模较小的 数据集
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) <=
- 即得两个新簇: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值的选取 也是敏感的
- 算法性能分析:
- 时间复杂性为O(n2)
- 不具有很好的可伸缩性
- 在 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树存储了层次聚类的簇的特征,它有三个参数:枝平衡因子β、叶平衡因子λ、空间阈值τ
- 枝平衡因子β(内部节点的最大CF数)
- 叶平衡因子λ(叶子节点的最大CF数)
- 空间阈值τ(叶节点每个CF的最大样本半径)
- 非叶节点中 包含不多于 β个 形如[CFi,childi] 的节点
- 叶节点中 包含不多于 λ个 形如[CFi] 的条目,每个条目不是简单的数据点,而是簇
- 空间阈值τ:用于约束的树的大小,叶节点内各条目对应簇的半径C不得大于τ,τ越大,树越小
- 聚类特征树的生成:
- BIRCH算法步骤:
- 阶段一:扫描数据集,建立初始的CF树(一个数据的多层压缩,保留数据内在的聚类结构),当一个对象被插入到最近的叶节点(子聚类)中时,随着对象的插入,CF树被动态地构造,故 BIRTH方法对增量或动态聚类非常有效
- 阶段二:采用某个聚类算法对 CF树的叶节点进行聚类。此阶段可以执行任何聚类算法
- BIRCH算法的主要优点:
- 节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针
- 聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快
- 可以识别噪音点,还可以对数据集进行初步分类的预处理
- BIRCH算法的主要缺点有:
- 由于CF Tree对每个节点的CF个数有限制,导致聚类的结果可能和真实的类别分布不同.
- 对高维特征的数据聚类效果不好,如果数据集的分布簇不是类球型簇,则聚类效果不好
- 由于每个节点只能包含一定数目的子节点,最后得出来的簇可能和自然簇相差很大
- 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算法优点:
- 不需要事先知道要形成的簇的数量,可以发现任意形状的簇
- 能够识别出噪声点,可以检测离群点
- 对于数据集中样本的顺序不敏感
- DBSCAN算法缺点:
- 不能很好反映高维数据
- 对用户定义的密度(ε,MinPts)参数是敏感的,即 ε和 MinPts的设置将直接影响聚类的效果
- 如果样本集的密度不均匀、簇间距离相差很大时,聚类质量较差
数据挖掘丁兆云pdf 数据挖掘丁兆云ppt
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
数据挖掘||利用SQL Server 2012或者Excel 2013采用聚类和时序挖掘模型和算法,对自行车购买的数据集进行聚类和时序挖掘实验
利用SQL Server 2012或者Excel 2013(二者选择其一即可)进行数据挖掘实验,采用聚类和时序挖掘模型和算法,可以对附件中给定的excel数据进行聚类和时序挖掘实验。3.1 Excel 2019 聚类与时序挖掘 聚类分析 3.2 时序聚类本次实验分为两大大部分:聚类挖掘、时序挖掘。使用EXCEL 2019中数据挖掘插件中的先进行数据挖掘,运用准确性图表、分类矩阵、利润来进行 数据挖掘和分析。
聚类 数据挖掘 数据 时序聚类 SQL Server 2012 -
数据挖掘原理与应用试题精选一答案丁兆云
数据分类的两个阶段:学习阶段(构造分类模型)和分类阶段(使用模型预测给定数据的类标号)和分类阶段(使用模型预测给定数据的类标号)。决策树归纳 构造一颗树,从根到叶子节点的路径,该叶子节点就存放着该元组的预测类。  
数据挖掘原理与应用试题精选一答案丁兆云 人工智能 数据结构与算法 数据库 元组