复习总结:数据挖掘(挖掘)

数据挖掘复习指南

1 引论

1.1 数据挖掘

1.1.1 概念

  • 从大量数据中非平凡地提取隐含的、未知的、有潜在价值的有用信息

  • 自动化、半自动化地探索、分析大量数据,以求发现有意义的模式

1.1.2 流程

  • 数据清洗 ==> 数据集成 ==> 数据挖掘 ==> 模式评估

1.1.2 任务

  • 预测(分类、回归、…)
  • 描述(聚类、关联规则挖掘、…)

2 数据

2.1 数据

2.1.1 基本概念
  • 数据:数据对象和属性的集合

  • 属性:对象的某种特质,一组属性可描述一个对象

  • 属性值:属性的数值或符号描述

2.1.2 属性类型
  • 标称Norminal = !=

  • 序数Ordinal > <

  • 区间Interval + -

  • 比率Ratio * /

  • 连续

  • 离散

2.1.3 数据集类型
  • 记录Record(数据矩阵、文档数据、事务数据)
  • 图Graph(万维网、分子结构)
  • 有序数据Ordered(空间数据、时间数据、序列数据、基因数据)
2.1.4 数据特征
  • 维度Dimensionality
  • 稀疏度Sparsity
  • 分辨率Resolution
2.1.5 数据质量
  • 噪声值Noise
  • 离群值Outlier:和大多数数据对象明显不同的值
  • 缺失值Missing:需要排除或者合理估计一个值
  • 重复值Duplicate

2.2 数据处理

  • 集成Aggregation:将多个属性合并到单个属性中,用于减少数据量、增强数据稳定性
  • 抽样Sampling
  • 降维Dimensionality Reduction
  • 特征选择Feature Subset Selection
  • 特征创建Feature Creation
  • 离散化和二值化Discretization&Binarization
  • 属性变换Attribute Transformation

2.3 相似性 & 距离

2.3.1 常见距离
  • 曼哈顿距离Manhattan Distance d ( p , q ) = ( ∑ k = 1 n ∣ p k − q k ∣ ) d(p, q) = (\sum_{k=1}^n |p_k - q_k|) d(p,q)=(k=1npkqk)

  • 欧氏距离Euclidean Distance

  • 明氏距离Minkowski Distance d ( p , q ) = ( ∑ k = 1 n ∣ p k − q k ∣ r ) 1 r d(p,q)= (\sum_{k=1}^n |p_k - q_k| ^ r) ^ {\frac1r} d(p,q)=(k=1npkqkr)r1

  • 马氏距离Mahalanobis Distance d ( p , q ) = ( p − q ) T Σ − 1 ( p − q ) d(p, q) = (p-q)^T \Sigma ^{-1} (p-q) d(p,q)=(pq)TΣ1(pq)

2.3.2 常见相似性
  • 余弦相似性 s ( p , q ) = c o s ( p , q ) s(p, q) = cos(p, q) s(p,q)=cos(p,q)
  • 相关系数(需要先进行向量归一化) s ( p , q ) = p ′ . q ′ s(p, q) = p' . q' s(p,q)=p.q
2.3.3 二进制向量的相似性
  • SMC(一致比率) S M C = ( M 11 + M 00 ) / ( M 00 + M 01 + M 10 + M 11 ) SMC = (M_{11} + M_{00}) / (M_{00} + M_{01} + M_{10} + M_{11}) SMC=(M11+M00)/(M00+M01+M10+M11)
  • J(去除全0的一致比率) J = ( M 11 ) / ( M 01 + M 10 + M 11 ) J = (M_{11}) / (M_{01} + M_{10} + M_{11}) J=(M11)/(M01+M10+M11)
2.3.2 距离的特性
  • 正定性
  • 对称性
  • 满足三角不等式

3 数据探测

3.1 目的

  • 直观了解数据的特点
  • 帮助选择数据处理的工具

3.2 数字特性Summary Statistics

  • 众数Mode
  • 百分位数Percentile: x p x_p xp表示数据集中有 p % p \% p%的数据小于 x p x_p xp
  • 均值Mean & 中位数Median : 衡量数据位置Location
  • 极差Range & 方差Variance: 衡量数据的散布Spread
  • 协方差矩阵Covariance: C o v ( x i , x j ) = 1 / ( m − 1 ) ∗ ∑ k = 1 m ( x i ( k ) − x i ˉ ) ( x j ( k ) − x j ˉ ) Cov(x_i, x_j) = 1 / (m - 1) * \sum_{k=1}^m (x_i^{(k)} - \bar{x_i})(x_j^{(k)} - \bar{x_j}) Cov(xi,xj)=1/(m1)k=1m(xi(k)xiˉ)(xj(k)xjˉ)

3.3 可视化

  • 直方图Histogram
    • 可以表现数据的频率分布信息
  • 箱图Box Plot
    • 可以表现四分百分位数信息
  • 散点图Scatter Plot
    • 属性值决定点的位置
    • 可以通过数据点的大小、形状、颜色表示其他属性
  • 等高线图Contour Plot
    • 相似的属性值被划分到同一区域,等值线形成了区域边界
  • 矩阵图Matrix Plot
    • 当数据按照类标签排序后效果比较好
    • 常用于可视化距离/相似度矩阵
    • 属性值需要规范化
  • 平行坐标图Parallel Coordinate
    • 常用于展现高维数据
    • 横轴各列为属性,纵轴为属性值,一个数据对象表示为一条线
  • 星图Star Plot
    • 和平行坐标图类似,但是对象线条组成了多边形

4 分类

4.1 决策树

4.1.1 实用构建算法
  • Hunt‘s Algorithm
  • CART
  • ID3, C4.5
  • SLIQ, QPRINT
4.1.2 一般构建算法

D t D_t Dt 是抵达决策节点t的数据集合

  • 如果 D t D_t Dt包含的数据全部为同一类 y t y_t yt,则将该点作为叶子节点,标注为 y t y_t yt
  • 如果 D t D_t Dt为空, 则将该节点作为叶子结点,标注为 y d e f a u l t y_{default} ydefault
  • 如果 D t D_t Dt$包含多类数据,则按照某一属性将数据划分为多个子集,对应于多个子节点
4.1.3 属性划分方法
  • 标称Norminal、序数Order:将属性值的取值集合划分成多组即可
  • 连续Continus:离散化后划分;选取某一阈值进行二分 (A < v) or (A >= v)
4.1.4 属性最佳划分策略

选取使得划分后数据单纯度最高(混乱度最低)的划分策略

  • 基尼系数Gini Index
    • 节点 G I N I ( t ) = 1 − ∑ j [ p ( j ∣ t ) ] 2 GINI(t) = 1 - \sum_j [p(j | t)]^2 GINI(t)=1j[p(jt)]2
    • 划分 G I N I S P L I T ( t ) = ∑ i ∈ s o n ( t ) [ n i / n t ∗ G I N I ( i ) ] GINI_{SPLIT}(t) = \sum_{i \in son(t)} [{n_i} / {n_t} * GINI(i)] GINISPLIT(t)=ison(t)[ni/ntGINI(i)]
  • 熵Entropy
    • 节点 E n t r o p y ( t ) = − ∑ j [ p ( j ∣ t ) ∗ l o g p ( j ∣ t ) ] Entropy(t) = - \sum_j [p(j | t) * log p(j | t)] Entropy(t)=j[p(jt)logp(jt)]
    • 划分 E n t r o p y S P L I T ( t ) = ∑ i ∈ s o n ( t ) [ n i / n t ∗ E n t r o p y ( i ) ] Entropy_{SPLIT}(t) = \sum_{i \in son(t)} [{n_i} / {n_t} * Entropy(i)] EntropySPLIT(t)=ison(t)[ni/ntEntropy(i)]
  • 误分类误差Misclassification error
    • 节点 E r r o r ( t ) = 1 − m a x j p ( j ∣ t ) Error(t) = 1 - max_j p(j | t) Error(t)=1maxjp(jt)
4.1.5 何时停止拓展
  • 所有数据都为同一类 ; 所有数据都有着相似的属性
  • 提前终止
4.1.6 算法评价
  • 优点:构造简单,预测迅速,在属性较少时解释性好
  • 缺点:???

4.2 朴素贝叶斯

利用贝叶斯公式 P ( C ∣ X ) = P ( X ∣ C ) ∗ P ( C ) P ( X ) P(C | X) = \frac{P(X|C) * P(C)} {P(X)} P(CX)=P(X)P(XC)P(C), 找出概率最大的C

4.2.1 算法要点
  • 在各个类C进行概率比较式, P ( X ) P(X) P(X)都包含在其中,因此可以忽略这一项,只比较分子
  • 似然函数的合成 P ( X ∣ C ) = Π j P ( X j ∣ C ) = P ( X 1 ∣ C ) ∗ P ( X 2 ∣ C ) ∗ . . . P(X|C) = \Pi_j P(X_j | C) = P(X_1 | C) * P(X_2 | C) * ... P(XC)=ΠjP(XjC)=P(X1C)P(X2C)...
  • P ( X i ∣ C ) P(X_i | C) P(XiC)的计算
    • 对于离散数据,可以用频率估计概率
    • 对于连续数据,基于高斯分布进行概率计算 P ( X i ∣ C ) = g ( x i , μ C , σ C ) P(X_i | C) = g(x_i, \mu_C, \sigma_C) P(XiC)=g(xi,μC,σC)
4.2.2 算法评价
  • 优点:实现简单,效果良好
  • 缺点:要求各个属性相互独立
4.3 模型评价
  • 混淆矩阵Confusion Matrix

  • 代价矩阵Cost Matrix

  • 准确率Accuracy = (TP + TN) / (TP + TN + FP + FN) 预测正确的比率

  • 精确率Precision = TP / (TP + FP) 找到的正例正确的比率

  • 召回率Recall = TP / (TP + FN) 正例被找到的比率

  • F分数 = 2pr / (p + r)

  • 学习曲线Learning Curve (Sample Size —> Accuracy)

  • ROC曲线ROC Curve (FPR —> TPR) FPR=FP / (FP + TN), TPR = TP / (TP + FN)

5 聚类

5.1 聚类方法Clustering

  • 划分聚类:将数据划分为互不重叠的子集,一个点只属于某一类
  • 层次聚类:将嵌套的类簇以层次树的形式构建

5.2 类簇种类Clusters

  • 明显分离的Well-Separated
  • 基于中心的Center-based
  • 基于近邻的Contiguous
  • 基于密度的Density-based
  • 被目标函数描述的Described by an Objective Function

5.3 K-means

5.3.1 算法流程
  • 选择K个点作为初始质心

  • repeat

    • 关联每个点和它最邻近的质心以形成K个类簇
    • 重新计算每一个类簇的质心

    until K个质心不再改变

5.3.2 目标函数 & 效果评估
  • 误差平方和 S S E = ∑ k = 1 K ∑ x ∈ C k d i s t ( m k , x ) 2 SSE = \sum_{k=1}^K\sum_{x \in C_k} dist(m_k, x)^2 SSE=k=1KxCkdist(mk,x)2
  • 我们希望在K较小时寻找尽可能小的SSE
5.3.3 算法评价
  • 优点:实现简单,运行迅速
  • 缺点:
    • 需要指定K以及初始化参数
    • 初始化的情况对算法结果影响很大
    • 异常点对于算法结果影响很大
    • 难以处理多尺寸、多密度、非球状的类簇聚类问题
5.3.4 算法改进-二分K-means
  • 初始化类簇列表,其中仅有一个包含全部节点的类簇

  • repeat

    • 从类簇列表中选择一个类簇
    • repeat(iter_num)
      • 执行K-means算法基础版本,将选中的类簇二分
    • 选择SSE最小的一种二分类簇加入到类簇列表中

    until 类簇列表中包含K个类簇

5.4 层次聚类

5.4.1 聚类方法
  • 聚集式Agglomerative(从底向上归并)
  • 分裂式Divisive (自顶向下切分)
5.4.2 类簇相似性/距离的衡量
  • MIN / Single Link (单链)
    • 可处理非椭圆类簇
    • 对噪声和异常值很敏感
  • MAX / Complete Link (全链)
    • 倾向于球形类簇
    • 会破坏大尺寸类簇
    • 对噪声和异常值不太敏感
  • Group Average (组平均)
    • 倾向于球形类簇
    • 对噪声和异常值不太敏感
5.4.3 聚集式-算法流程
  • 令每个数据点单独成为一个类簇

  • repeat

    • 计算类簇之间的距离矩阵Proximity Matrix
    • 归并两个最近的类簇

    until 仅剩下一个类簇

5.5 DBSCAN

5.5.1 核心概念
  • 密度:该点半径内点的个数

  • 核心点(高密度点):在其半径Eps内有多于阈值MinPts个数的点

  • 边界点(核心区低密度点):非核心点,且处于某一核心点半径内

  • 噪声点(非核心区低密度点):除核心点和边界点之外的点

  • 直接密度可达DDR:p点在核心点q的半径内

  • 密度可达DR:p点、q点之间存在一个传递链,链上相邻点都直接密度可达

  • 密度相连DC:存在中间点o,使得o点与p点和q点都密度可达

5.5.2 算法流程
  • 设定参数Eps、MinPts
  • 将所有点标记为核心点、边界点、噪声点,并删除噪声点
  • 在距离在Eps内的所有核心点之间赋予一条边
  • 每组连通的核心点形成一个类簇,将边界点指派到一个与之关联的核心点的类簇中
5.5.3 算法评价
  • 优点:
    • 对噪声不敏感
    • 能处理不同形状、尺寸的类簇
  • 缺点:难以处理多密度类簇、高维数据
5.5.4 聚类效果衡量
  • 外部指标:用于在有外部类型标签的情况下评估聚类效果
  • 内部指标:用于在没有外部信息的情况下评估聚类效果
  • 相对指标:用于比较多个聚类方法

6 关联规则挖掘

6.1 目标

  • 从给定的一组事务中寻找某些依赖规则,使得可以通过一些项目的出现来预测另外一些项目的出现
  • 寻找支持度、置信度大于给定阈值的所有关联规则

6.2 基本概念

  • 项集Itemset:包含有多项的集合
  • 支持度计数Support count( σ \sigma σ):某一项集的出现次数
  • 支持度Support:某一项集的出现次数比例
  • 频繁项集Frequent Itemset:支持度大于阈值minsup的某一项集
  • 关联规则Association Rule:一个项集到另一个项集的映射 X –> Y
  • 关联规则评价标准
    • 支持度Support(s):X、Y合并项集的支持度
    • 置信度Confidence©:在包含X的事务中包含Y的比例

6.3 挖掘过程

  • 设定参数minsup、minconf
  • 生成频繁子集:寻找所有支持度大于阈值的项集
  • 生成关联规则:从频繁项集中生成高置信度的关联规则,每一个规则都是对应频繁子集的二划分

6.3 寻找频繁子集

6.3.1 寻找过程
  • 构建项目Item的子集树
  • 利用Apriori算法进行剪枝
  • 构造候选项集的哈希树来减少比较次数
6.3.2 Apriori 原理
  • 如果一个项集是频繁的,那么它的所有子集都是频繁的。
6.3.3 Apriori 算法
  • 令k=1

  • 生成1-频繁项集

  • repeat

    • 从k-频繁项集生成 (k+1)-候选项集
    • 剪掉那些不频繁k-项集的后代项集
    • 扫描数据库,计算每个候选项集的支持度
    • 将支持度低于阈值的项集滤除

    until 没有新的候选项集生成

6.3.3 频繁项集的紧致表示
  • 极大项集:直接超集都不频繁的项集
  • 闭项集:直接超集的支持度都比它自己小的项集

6.4 寻找关联规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值