文章目录
一、 数据挖掘算法组件化
二、 组件一 : 模型或模式结构
三、 组件二 : 数据挖掘任务
四、 组件三 : 评分函数
五、 组件四 : 搜索和优化算法
六、 组件五 : 数据管理策略
七、 数据挖掘算法 组件化思想应用
一、 数据挖掘算法组件化
1 . 数据挖掘算法现状 : 目前数据挖掘领域算法很多 , 并且每年都会有有大量算法提出 ;
2 . 数据挖掘算法本质 : 但其本质都是类似的 , 新推出算法在原来的算法的基础上进行优化改进 , 形成了目前的大量算法种类 ;
3 . 组件化学习应用 : 通过组件化思想来理解数据挖掘算法 , 将算法模块化 , 不同模块的排列组合就形成了不同种类的算法 , 因此核心就是学习这些算法的模块组件 ;
① 组件原理 : 每种组件的原理基本相同 , 掌握一种组件原理后 , 学习另一种组件就比较轻松 ;
② 组件角度 : 从组件角度对比不同的算法 , 更容易看出算法之间的差异 ;
4 . 数据挖掘算法的五个标准组件 :
① 模型或模式结构 : 决策树模型 , ( 信念 ) 贝叶斯模型 , 神经网络模型 等 ;
② 数据挖掘任务 : 概念描述 , 关联分析 , 分类 , 聚类 , 异常检测 , 趋势分析 等 ;
③ 评分函数 : 误差平方和 , 最大似然 , 准确率 等 ;
④ 搜索和优化方法 : 随机梯度下降 ;
⑤ 数据管理策略 : 数据存储 , 数据库相关 ;
二、 组件一 : 模型或模式结构
1 . 模型或模式结构 : 通过 数据挖掘过程 得到知识 ; 是算法的输出格式 , 使用 模型 / 模式 将其表达出来, 如 : 线性回归模型 , 层次聚类模型 , 频繁序列模式 等 ;
2 . 模型 或 模式 表达 : 模型或模式表达方式各种各样 , 如公式 , 数据等 ;
① 线性回归模型 : 是一个数学公式 y = a x + b y = ax + by=ax+b ;
② 层次聚类模型 : 是一个树状结构的数据 ;
3 . 模型 ( 全局 ) :
① 模型概念 : 模型是在 全局层次 对 整个数据集 的 描述或总结 ;
② 模型适用范围 : 模型适用于数据集中的所有对象 ;
③ 抽象描述 : 模型本质是对现实世界进行的抽象描述 ;
④ 模型举例 : 数学公式 y = a x + b y = ax + by=ax+b , 只要给出 x xx 值 , 就必定有一个 y yy 值与之对应 , 没有特例 , 所有的 x xx 都适用于该模型 ;
4 . 模式 ( 局部 ) :
① 模式概念 : 模式是在 局部范围 对 部分数据 的 描述 ;
② 模式适用范围 : 局部适用 , 仅对小部分数据描述有效 ;
③ 模式内容 : 模式中只能描述部分对象 , 或对象的部分属性 , 并不能描述全部对象 以及 全部属性 ;
④ 模式举例 : 部分关联 , 如部分顾客购买啤酒时 , 也买了尿布 , 该信息局部有效 , 并没有对全局数据进行总结 ;
5 . 模型 与 模式 联系 : 全局的模型 和 局部的模式 是相互联系的 ; 模型与模式联系的示例 , 如下异常检测示例 :
① 需求 : 异常检测中 , 想要检测出 异常数据 , 就必须先知道 什么是正常数据 ;
② 描述 : 这里的对正常数据的描述就是 全局模型 , 异常数据描述 就是 局部模式 ;
6 . 模型 和 模式 参数 : 模型 , 模式 都与参数相关 ,
① 模型参数 : 如 数学公式 y = a x + b y = ax + by=ax+b 中 , a aa 和 b bb 就是模型的参数 ;
② 模式参数 : 如 : 如果 x > a x > ax>a , 则 y > b y>by>b 的概率是 c cc , 其中 a , b , c a, b, ca,b,c 就是模式的参数 ;
7 . 不确定的模型 ( 模式 ) : 不确定的模式 或 模式 叫 结构 ;
① 模型结构 : 参数不确定的模型是模型结构 ;
② 模式结构 : 参数不确定的模式是模式结构 ;
8 . 拟合的模型 ( 模式 ) :
① 参数确定 : 如果 模型 或 模式 参数确定 , 那么该模型称为 已经拟合的模型 ( 模式 ) , 可以简称为 模型 ( 模式 ) ;
② 总结 : 不确定的模型叫做 模型结构 , 确定的 模型 或 模式 直接称为 模型 ( 模式 ) ;
三、 组件二 : 数据挖掘任务
1 . 数据挖掘任务分类 : 根据数据挖掘的目标 , 可以将数据挖掘任务分为以下几类 : ① 模式挖掘 , ② 描述建模 , ③ 预测建模 ;
① 模式挖掘 : 如 异常模式 , 频繁模式 ;
② 描述建模 : 如 聚类分析 ;
③ 预测建模 : 如 分类预测 , 趋势分析等 ;
2 . 模型挖掘与模式挖掘 : 描述建模 和 预测建模 可以看做是 模型挖掘 , 与 模式挖掘 对应 ;
3 . 模式挖掘 : 从数据集中寻找特定的模式 , 如 异常模式 . 频繁模式 等类型的模式 ;
4 . 频繁模式 : 在某个数据集中 , 频繁出现的模式 ;
① 模式类型 : 某个数据 , 子数据集 , 项集 , 子序列 , 子图 等结构 ;
② 频繁的项集 : 如交易数据中 , 啤酒和尿布经常出现在一起 , 牛奶和面包经常出现在一起 , 称为频繁项集 ;
③ 频繁的子序列 : 消费者购买电脑后会购买打印机 , 然后购买打印纸 , 电脑 打印机 打印纸 就是频繁子序列 ;
④ 频繁的子结构 : 在图结构数据中频繁出现子图 , 树结构数据中频繁出现子树 , 被称为频繁子树 ;
5 . 预测建模 : 先根据现有数据建立模型 , 然后根据该模型预测未来的数据 ; ( 先建模 , 再预测 )
① 分类 : 被预测的数据类型是 范畴型的 , 数据种类有限 ; 如 : 结果 好 , 坏 两种 ; 病情 : 良好 , 恢复 , 恶化 三种 ;
② 回归 : 被预测的数据类型是 数值型的 , 如 电影票房 , 国家 GDP , 是一个数值型的 ;
6 . 分类模型 与 回归模型 :
① 分类模型 : 又叫 分类函数 , 分类器 ;
② 分类模型应用 : 信用等级评价 , 治疗疾病的诊断 等 ;
③ 有监督学习 : 分类过程中 , 使用了训练集进行训练学习 , 这是一个有监督的学习过程 ;
④ 回归模型 : 一般用于 性能评估 , 概率评估 等领域 ;
7 . 描述建模 : 描述数据的全局性特征 ;
① 描述建模 与 预测建模区别 : 变量个数不同 , 预测建模预测的变量是 1 个 , 如个人信用等级 , 疾病病情等级 等 ; 描述建模描述多个变量 ;
② 描述建模示例 : 聚类分析 ;
8 . 分类 与 聚类 对比 :
① 分类 : 数据有 n 个变量 , 已知 n - 1 个变量 ; 目标是预测未知的那个变量的值 ; 预测建模的本质是找到 n - 1 个变量 与 最后一个变量的模型 ; 根据一条数据的 n - 1 个变量 , 得出其最后一个变量值 ;
② 聚类 : 数据有 n 个变量 , 所有的变量都是已知的 ; 如果某几个数据的某几个变量相似 , 那么将这几个数据分成一组 , 目标是分组 ; 根据多条数据的 n 个变量 , 将多条数据进行分组 ;
四、 组件三 : 评分函数
1 . 参数不确定 : 参数不确定的 模型 ( 模式 ) 叫做 模型 ( 模式 ) 的结构 , 即知道结构 , 但不知道具体的 模型 ( 模式 ) ;
2 . 结构拟合数据 : 知道 模型 ( 模式 ) 结构后 , 需要进一步确定结构中的参数值 , 依据就是现有的数据集 , 这个过程就是将结构拟合到数据 ;
3 . 评分函数引入 : 如模型结构 y = a x + b y = ax + by=ax+b 中 , a aa 和 b bb 是模型的参数 , 其取值范围是 ( − ∞ , + ∞ ) (-\infty , +\infty)(−∞,+∞) , 如何评价参数值选取的是否合适 , 需要给出评价标准 , 这个评价标准就是评分函数 ;
4 . 评分函数 :
① 评分函数概念 : 评分函数用于评估 数据集 与 模型 ( 模式 ) 的拟合程度 , 值 越大 ( 越小 ) 越好 ;
② 评分函数作用 : 为 模型 ( 模式 ) 选出最合适的参数值 ;
③ 常用的评分函数 : 似然函数 , 误差平方和 , 准确率 , 支持度 , 可信度 等 ;
④ 误差平方和示例 : 模型结构 y = a x + b y = ax + by=ax+b , 使用模型预测出的 y yy 值为 y ′ y'y
′
, 真实的值为 y yy , 计算出 单条数据的 误差平方 ( y − y ′ ) 2 (y - y')^2(y−y
′
)
2
, 将所有数据的 误差平方 相加 , 就是误差平方和 ; 这个值越小越好 ;
5 . 评分函数要求 :
① 拟合 : 为 模型 ( 模式 ) 选择的评分函数 , 能很好的拟合当前已知的数据集 ;
② 避免过拟合 : 评分函数要避免过拟合 , 对极端数据过于敏感 , 这是没有必要的 ; 如出现极端数据 , 模型剧烈变化 , 模型需要的是稳定 ;
③ 模型简洁 : 拟合后的模型尽量简洁 ;
6 . 模型 ( 模式 ) 的特点 :
① 模型 ( 模式 ) 近似性 : 不存在绝对正确的 模型 ( 模式 ) , 所有的 模型 ( 模式 ) 要求近似即可 ;
② 模型 ( 模式 ) 稳定性 : 模型 ( 模式 ) 不随着数据变化而变化 ; 如出现极端数据 , 模型剧烈变化 ; 模型 ( 模式 ) 要做到对数据的微笑变化不敏感 ;
五、 组件四 : 搜索和优化算法
1 . 评分函数作用 : 衡量 模型 ( 模式 ) 与已知数据集的 拟合程度 ;
2 . 搜索和优化算法作用 : 确定 模型 ( 模式 ) 以及其相关的 参数值 , 该模型 ( 模式 ) 使评分函数 达到某个最大 ( 最小 ) 值 ; 本质是帮助评分函数取得 最大 ( 最小 ) 值的方法 ;
3 . 搜索问题 和 优化问题 :
① 结构确定求参数 ( 优化问题 ) : 模型 ( 模式 ) 结构确定后 , 目的就是为了确定参数值 , 针对固定的 模式 ( 模型 ) 结构 , 确定一组参数值 , 使评分函数最优 , 这是优化问题 ;
② 结构不确定 ( 搜索问题 ) : 搜索 既需要确定 模型 ( 模式 ) 的结构 , 又需要确定其参数值 , 这种类型是搜索问题 ;
③ 搜索和优化对比 : 模型 ( 模式 ) 结构确定 , 获取其最优参数是优化问题 ; 模型 ( 模式 ) 结构不确定 , 是搜索问题 ;
4 . 常用的优化和搜索方法 :
① 优化方法 : 爬山算法 , 最陡峭下降 , 期望最大化方法 , 随机梯度下降 ;
② 搜索方法 : 贪婪搜索 , 分支界定法 , 宽度 / 深度 优先遍历方法 ; 其中贪婪搜索方法每一步都是当前最优结果 , 全局不一定是最优的 ;
六、 组件五 : 数据管理策略
1 . 传统数据与大数据 :
① 传统数据 : 传统的数据管理方法是将数据都放入内存中 , 少量数据 , 直接在内存中处理 , 不需要特别关注数据管理技术 ;
② 大数据 : 数据挖掘中的数据一般是 GB , TB 甚至 PB 级别的大数据 , 如果使用传统的内存算法处理这些数据 , 性能会很低 ;
2 . 海量数据管理 : 目的是提高数据挖掘算法的性能 , 减少数据的访问次数 , 通过采样 , 近似 , 索引 , 组织管理数据 ;
七、 数据挖掘算法 组件化思想应用
1. 算法核心体现 : 将数据挖掘算法分解成一个个核心的组件 , 这些组件是算法核心机制的体现 ;
2 . 组件化应用 : 当面对新需求时 , 不需要整体照搬某个现成的算法 , 应该根据需求 , 选择不同的组件 , 组成新算法解决当前的数据挖掘问题 ;
举例 : 如当前的需求 , 模型结构采用哪个类型 , 评分函数使用哪个 , 搜索优化方法选取 等 , 拼接组装成一个新的数据挖掘算法 ;
3 . 人和计算机分工 :
① 人工工作 : 模型 ( 模式 ) 结构 和 评分函数 , 一般是开发者来确定 ;
② 计算机工作 : 搜索和优化评分函数过程 , 由计算机实现 ;
4 . 算法侧重方向 ( 完备性 / 计算效率 ) :
① 小数据 : 数据集比较小 , 侧重于 模型 ( 模式 ) 的能力 , 如描述 , 预测 的准确性 ;
② 大数据 : 侧重于计算的效率 , 需要在 模型 ( 模式 ) 的能力 和 计算效率之间找平衡点 , 如 算法预测明天的股票预测的很准确 , 但是要运行好几年 , 没有任何意义 ;