文章目录
- 一、 数据挖掘特点
- 二、 数据挖掘组件化思想
- 三、 朴素贝叶斯 与 贝叶斯信念网络
- 四、 决策树构造方法
- 五、 K-Means 算法优缺点
- 六、 DBSCAN 算法优缺点
- 七、 支持度 置信度
- 八、 频繁项集
- 九、 非频繁项集
- 十、 Apriori 算法过程
一、 数据挖掘特点
1 . 用于挖掘的数数据源 必须 真实 :
① 存在的真实数据 : 数据挖掘处理的数据一般是存在的真实数据 , 不是专门收集的数据 ;
② 数据收集 : 该工作不属于数据挖掘范畴 , 属于统计任务 ;
2 . 数据必须海量 :
① 少量数据处理 : 少量数据使用统计方法分析 , 不必使用数据挖掘 ;
② 海量数据 : 处理海量数据时 , 才使用数据挖掘 , 涉及到 有效存储 , 快速访问 , 合理表示 等方面的问题 ;
3 . 数据挖掘的查询是随机的 : 决策者 ( 用户 ) 提出的随机查询 ;
① 要求不精确 : 查询灵活 , 没有精确的要求 ( 无法用 SQL 语句写出来 ) ;
② 结果正确性未知 : 查询出来结果也不知道是否准确 ;
4 . 未知结果 :
① 挖掘结果 : 数据挖掘 挖掘出的知识是未知的 , 目的是为了发掘潜在的知识 , 模式 ; 这些知识只能在特定环境下可以接收 , 可以理解 , 可以运用 ;
② 知识使用 : 数据挖掘出的知识只能在特定领域使用 , 如金融领域数据挖掘结果 , 只能在金融领域及相关领域使用 ;
参考博客 :
- 【数据挖掘】数据挖掘简介 ( 数据挖掘引入 | KDD 流程 | 数据源要求 | 技术特点 )
二、 数据挖掘组件化思想
0 . 数据挖掘算法的五个标准组件 :
- ① 模型或模式结构 : 决策树模型 , ( 信念 ) 贝叶斯模型 , 神经网络模型 等 ;
- ② 数据挖掘任务 : 概念描述 , 关联分析 , 分类 , 聚类 , 异常检测 , 趋势分析 等 ;
- ③ 评分函数 : 误差平方和 , 最大似然 , 准确率 等 ;
- ④ 搜索和优化方法 : 随机梯度下降 ;
- ⑤ 数据管理策略 : 数据存储 , 数据库相关 ;
1 . 模型或模式结构 : 通过 数据挖掘过程 得到知识 ; 是算法的输出格式 , 使用 模型 / 模式 将其表达出来, 如 : 线性回归模型 , 层次聚类模型 , 频繁序列模式 等 ;
2 . 数据挖掘任务分类 : 根据数据挖掘的目标 , 可以将数据挖掘任务分为以下几类 : ① 模式挖掘 , ② 描述建模 , ③ 预测建模 ;
描述建模 和 预测建模 又称为 模型挖掘 ;
① 模式挖掘 : 如 异常模式 , 频繁模式 ;
② 描述建模 : 如 聚类分析 ;
③ 预测建模 : 如 分类预测 , 趋势分析等 ;
3 . 评分函数 : 常用的评分函数有 似然函数 , 误差平方和 , 准确率等 ;
① 评分函数概念 : 评分函数用于评估 数据集 与 模型 ( 模式 ) 的拟合程度 , 值 越大 ( 越小 ) 越好 ;
② 评分函数作用 : 为 模型 ( 模式 ) 选出最合适的参数值 ;
4 . 搜索和优化算法作用 : 确定 模型 ( 模式 ) 以及其相关的 参数值 , 该模型 ( 模式 ) 使评分函数 达到某个最大 ( 最小 ) 值 ; 本质是帮助评分函数取得 最大 ( 最小 ) 值的方法 ;
① 结构确定求参数 ( 优化问题 ) : 模型 ( 模式 ) 结构确定后 , 目的就是为了确定参数值 , 针对固定的 模式 ( 模型 ) 结构 , 确定一组参数值 , 使评分函数最优 , 这是优化问题 ;
② 结构不确定 ( 搜索问题 ) : 搜索 既需要确定 模型 ( 模式 ) 的结构 , 又需要确定其参数值 , 这种类型是搜索问题 ;
5 . 数据管理策略 : 传统数据与大数据 ; 设计有效的数据组织与索引技术 , 通过采样 , 近似等手段 , 减少扫描次数 , 提高数据挖掘算法效率 ;
① 传统数据 ( 内存管理数据 ) : 传统的数据管理方法是将数据都放入内存中 , 少量数据 , 直接在内存中处理 , 不需要特别关注数据管理技术 ;
② 大数据 ( 集群管理数据 ) : 数据挖掘中的数据一般是 GB , TB 甚至 PB 级别的大数据 , 如果使用传统的内存算法处理这些数据 , 性能会很低 ;
确定 模型 / 模式 结构 和 评分函数 , 是人来完成 , 优化评分函数的过程是计算机完成 ;
参考博客 :
- 【数据挖掘】数据挖掘算法 组件化思想 ( 模型或模式结构 | 数据挖掘任务 | 评分函数 | 搜索和优化算法 | 数据管理策略 )
- 【数据挖掘】数据挖掘算法 组件化思想 示例分析 ( 组件化思想 | Apriori 算法 | K-means 算法 | ID3 算法 )
三、 朴素贝叶斯 与 贝叶斯信念网络
朴素贝叶斯算法是朴素的 , 是因为在 分类的计算 过程中 , 做了一个 朴素的假设 , 假定 属性值之间是相互独立的 , 该假设称作 条件独立 , 做此假设的目的是为了简化计算 ;
( 教科书上的标准描述 )
四、 决策树构造方法
递归 : 从 根节点 开始 , 从上到下递归 ;
分治 : 采用 分而治之 的方法 , 通过不断 将 训练样本 划分成子集 , 构造决策树 ;
递归过程 : 训练集
有
个变量 ,
个类别 , 针对
构造决策树 , 出现以下情况 :
① 类别相同 ( 递归停止条件 ) : 如果
中 样本类别相同 , 决策树只有一个叶子结点 ;
② 属性用尽 ( 递归停止条件 ) : 如果
没有用于继续分裂的变量 , 则将
中出现频率最高的类别作为当前节点的类别 ;
③ 样本用尽 ( 递归停止条件 ) : 如果
中的样本都分配完毕 , 现在为空 , 则停止递归 ;
④ 分支 ( 递归操作 ) : 如果
包含的样本属于不同类别 , 根据变量选择策略 , 选择最佳的 变量 和 划分方式 , 将
分为多个子集 , 每个子集构成一个内部结点 ;
针对上述每个内部结点 , 都进行上述 ① ② ③ ④ 递归操作 , 直到满足决策树的终止条件为止 ;
递归终止条件 :
① 类别相同 : 样本所有结点对应的样本 都属于同一个类别 ;
② 属性用尽 :
中 没有可进一步分裂的变量 ;
③ 样本用尽 :
中的样本为空 ;
决策树构建算法 : Generate_Decision_Tree
输入 : 训练集
, 变量集
, 类别
输出 : 决策树
Generate_Decision_Tree ( T , A , Y )
① 样本用完 : 如果
为空 , 返回错误信息 ; ( 递归停止条件 )
② 类型相同 : 如果
所有样本都属于类别
, 则
类型就是当前结点类型 , 返回 ; ( 递归停止条件 )
③ 属性用尽 : 如果
的所有变量属性都被使用了 , 则使用出现频率最高的类别作为本结点的类型 , 返回 ; ( 递归停止条件 )
④ 生成分支 : 根据 变量选择策略 选择最佳变量
将 训练集
分为多个子集 ;
⑤ 标识根节点 : 使用
标识当前结点 ;
⑥ 递归操作 : 对 ④ 中分割的多个子集执行 Generate_Decision_Tree 递归操作 ,
结点指向 这些递归操作生成的新的分支 ;
⑦ 返回当前的结点 ;
五、 K-Means 算法优缺点
K-Means 算法优点 :
① 处理大数据量有 可扩充性 和 高效率 ; 其算法复杂度是
,
是样本个数 ,
是聚类个数 ,
是循环次数 ;
② 可以实现局部最优化 ;
K-Means 算法缺点 :
① 族个数 : 族的个数
必须事先确定 ;
② 形状 : 无法找到 特殊形状 的族 , 如凹形的 ;
③ 异常值 : 对于 异常数据敏感 , 异常数据对中心点计算影响很大 ;
④ 必须给定
个初始中心点 , 中心点选不好 , 影响聚类质量 ;
⑤ 求中心点时 , 需要计算算术平均值 , 针对分类属性的数据无法计算 , 如男女无法计算 ;
六、 DBSCAN 算法优缺点
DBSCAN 算法优点 :
① 族个数 : 不需要事先确定 族个数 ;
② 形状 : 能发现 任意形状的族 ;
③ 异常值 : 对异常数据不敏感 ;
④ 聚类速度快 ;
DBSCAN 算法缺点 :
① 输入参数
和
的值比较难确定 ;
② 数据库中 数据对象密度分布不均匀 时 , 使用相同的参数值可能无法得到好的聚类结果 ;
七、 支持度 置信度
给定
两个项集 , 并且有
;
支持度 :
的支持度是
两个项集在数据库
中 同时出现的概率 , 即
置信度 :
的置信度度是
出现的前提下 ,
项集在数据库
中同时出现的概率 , 即
一般情况下 置信度 大于 支持度 ;
八、 频繁项集
项集
的 支持度
, 大于等于 指定的 最小支持度阈值
,
则称该 项集
为 频繁项集 ,
又称为 频繁项目集 ;
九、 非频繁项集
项集
的 支持度
, 小于 指定的 最小支持度阈值
,
则称该 项集
为 非频繁项集 ,
又称为 非频繁项目集 ;
十、 Apriori 算法过程
原始数据集
,
项集
,
项集
,
,
项集
, 这些项集都是候选项集 ,
根据 原始数据集
, 创造
项集
, 然后对
执行 数据集扫描函数 , 找到其中的 频繁
项集
,
根据 频繁
项集
, 创造
项集
, 然后对
执行 数据集扫描函数 , 找到其中的 频繁
项集
,
根据 频繁
项集
, 创造
项集
, 然后对
执行 数据集扫描函数 , 找到其中的 频繁
项集
,
参考博客 : 【数据挖掘】关联规则挖掘 Apriori 算法 ( Apriori 算法过程 | Apriori 算法示例 )