文章目录
一、 数据挖掘特点
二、 数据挖掘组件化思想
三、 决策树模型
1、 决策树模型创建
2、 树根属性选择
一、 数据挖掘特点
1 . 用于挖掘的数数据源 必须 真实 :
① 存在的真实数据 : 数据挖掘处理的数据一般是存在的真实数据 , 不是专门收集的数据 ;
② 数据收集 : 该工作不属于数据挖掘范畴 , 属于统计任务 ;
2 . 数据必须海量 :
① 少量数据处理 : 少量数据使用统计方法分析 , 不必使用数据挖掘 ;
② 海量数据 : 处理海量数据时 , 才使用数据挖掘 , 涉及到 有效存储 , 快速访问 , 合理表示 等方面的问题 ;
3 . 数据挖掘的查询是随机的 : 决策者 ( 用户 ) 提出的随机查询 ;
① 要求不精确 : 查询灵活 , 没有精确的要求 ( 无法用 SQL 语句写出来 ) ;
② 结果正确性未知 : 查询出来结果也不知道是否准确 ;
4 . 未知结果 :
① 挖掘结果 : 数据挖掘 挖掘出的知识是未知的 , 目的是为了发掘潜在的知识 , 模式 ; 这些知识只能在特定环境下可以接收 , 可以理解 , 可以运用 ;
② 知识使用 : 数据挖掘出的知识只能在特定领域使用 , 如金融领域数据挖掘结果 , 只能在金融领域及相关领域使用 ;
参考博客 :
【数据挖掘】数据挖掘简介 ( 数据挖掘引入 | KDD 流程 | 数据源要求 | 技术特点 )
二、 数据挖掘组件化思想
0 . 数据挖掘算法的五个标准组件 :
① 模型或模式结构 : 决策树模型 , ( 信念 ) 贝叶斯模型 , 神经网络模型 等 ;
② 数据挖掘任务 : 概念描述 , 关联分析 , 分类 , 聚类 , 异常检测 , 趋势分析 等 ;
③ 评分函数 : 误差平方和 , 最大似然 , 准确率 等 ;
④ 搜索和优化方法 : 随机梯度下降 ;
⑤ 数据管理策略 : 数据存储 , 数据库相关 ;
1 . 模型或模式结构 : 通过 数据挖掘过程 得到知识 ; 是算法的输出格式 , 使用 模型 / 模式 将其表达出来, 如 : 线性回归模型 , 层次聚类模型 , 频繁序列模式 等 ;
2 . 数据挖掘任务分类 : 根据数据挖掘的目标 , 可以将数据挖掘任务分为以下几类 : ① 模式挖掘 , ② 描述建模 , ③ 预测建模 ;
描述建模 和 预测建模 又称为 模型挖掘 ;
① 模式挖掘 : 如 异常模式 , 频繁模式 ;
② 描述建模 : 如 聚类分析 ;
③ 预测建模 : 如 分类预测 , 趋势分析等 ;
3 . 评分函数 : 常用的评分函数有 似然函数 , 误差平方和 , 准确率等 ;
① 评分函数概念 : 评分函数用于评估 数据集 与 模型 ( 模式 ) 的拟合程度 , 值 越大 ( 越小 ) 越好 ;
② 评分函数作用 : 为 模型 ( 模式 ) 选出最合适的参数值 ;
4 . 搜索和优化算法作用 : 确定 模型 ( 模式 ) 以及其相关的 参数值 , 该模型 ( 模式 ) 使评分函数 达到某个最大 ( 最小 ) 值 ; 本质是帮助评分函数取得 最大 ( 最小 ) 值的方法 ;
① 结构确定求参数 ( 优化问题 ) : 模型 ( 模式 ) 结构确定后 , 目的就是为了确定参数值 , 针对固定的 模式 ( 模型 ) 结构 , 确定一组参数值 , 使评分函数最优 , 这是优化问题 ;
② 结构不确定 ( 搜索问题 ) : 搜索 既需要确定 模型 ( 模式 ) 的结构 , 又需要确定其参数值 , 这种类型是搜索问题 ;
5 . 数据管理策略 : 传统数据与大数据 ; 设计有效的数据组织与索引技术 , 通过采样 , 近似等手段 , 减少扫描次数 , 提高数据挖掘算法效率 ;
① 传统数据 ( 内存管理数据 ) : 传统的数据管理方法是将数据都放入内存中 , 少量数据 , 直接在内存中处理 , 不需要特别关注数据管理技术 ;
② 大数据 ( 集群管理数据 ) : 数据挖掘中的数据一般是 GB , TB 甚至 PB 级别的大数据 , 如果使用传统的内存算法处理这些数据 , 性能会很低 ;
确定 模型 / 模式 结构 和 评分函数 , 是人来完成 , 优化评分函数的过程是计算机完成 ;
参考博客 :
【数据挖掘】数据挖掘算法 组件化思想 ( 模型或模式结构 | 数据挖掘任务 | 评分函数 | 搜索和优化算法 | 数据管理策略 )
【数据挖掘】数据挖掘算法 组件化思想 示例分析 ( 组件化思想 | Apriori 算法 | K-means 算法 | ID3 算法 )
三、 决策树模型
1、 决策树模型创建
1 . 决策树模型创建 : 决策树模型创建的核心就是选择合适的树根 , 将重要的属性放在树根 , 然后子树中 , 继续选择子树中重要的属性放在子树的树根 , 依次递归 , 最终得到决策结果 ( 叶子节点 ) ;
2 . 决策树创建算法 ( 递归 ) : 使用递归算法 , 递归算法分为递归操作 和 递归停止条件 ;
3 . 递归操作 : 每个步骤先选择属性 , 选择好属性后 , 根据 总树 ( 子树 ) 的树根属性划分训练集 ;
① 选择属性 : 递归由上到下决定每一个节点的属性 , 依次递归构造决策树 ;
② 数据集划分 : 开始决策时 , 所有的数据都在树根 , 由树根属性来划分数据集 ;
③ 属性离散化 : 如果属性的值是连续值 , 需要将连续属性值离散化 ; 如 : 100 分满分 , 将 60 分以下分为不及格数据 , 60 分以上分为及格数据 ;
4 . 递归停止的条件 :
① 子树分类完成 ( 类型用完了 ) : 节点上的子数据集都属于同一个类别 , 该节点就不再向下划分 , 称为叶子节点 ;
② 属性 ( 节点 ) 全部分配完毕 ( 属性用完了 ) : 所有的属性都已经分配完毕 , 决策树的高度等于属性个数 ;
③ 所有样本分类完毕 ( 样本用完了 ) : 所有的样本数据集都分类完成 ;
2、 树根属性选择
1 . 属性选择方法 : 树根属性选择的方法很多 , 这里介绍一种常用的方法 , 信息增益 ;
2 . 信息增益 : 信息增益 效果越大 , 其作为树根属性 , 划分的数据集分类效果越明显 ;
3 . 信息 和 熵 : 涉及 信息论 的知识点 , 建议有空就去 B站 刷一下信息论课程 ;
① 信息 与 熵 的关系 : 信息 会 消除 熵 , 熵 代表了不确定性 , 信息用来消除不确定性 ;
② 信息增益 : 信息增益大的属性 , 能最大消除熵的不确定性 ;
4 . 决策树中的信息增益 : 属性的 信息增益 越大 , 就越能将分类效果达到最大 ;
如 : 想要从用户数据集中找到是否能买奢侈品的用户 , 先把高收入群体划分出来 , 将低收入者从数据集中去除 , 这个收入水平的属性 ( 特征 ) , 信息增益就很大 ;
参考博客 :
【数据挖掘】决策树算法简介 ( 决策树模型 | 模型示例 | 决策树算法性能要求 | 递归创建决策树 | 树根属性选择 )
【数据挖掘】决策树中根据 信息增益 确定划分属性 ( 信息与熵 | 总熵计算公式 | 每个属性的熵计算公式 | 信息增益计算公式 | 划分属性确定 )
【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )