- 4
- 0
- 约 25页
- 2017-02-04 发布于河南
- 举报
SPRIN算法
2003年3月24日星期一 3月24日 SPRINT: A Scalable Parallel Classifier for Data Mining —— SPRINT:一种用于数据挖 掘的可伸缩并行分类器 主讲人: 梁敏 决策树分类算法 SPRINT串行算法 数据结构 属性选择 基本算法 SPRINT并行算法 SPRINT算法的性能评估 总结 决策树分类算法 决策树分类过程 决策树生成算法分成两个步骤 树的生成 开始,数据都在根节点 递归的进行数据分片 树的修剪 去掉一些可能是噪音或者异常的数据 生成决策树的基本算法 Procedure BuildTree(S,A) (S:训练样本集, A:分类属性集合) 用样本集S创建节点N if A为空 then 返回N,标记为S中最普遍的类 if N 纯(pure) then 返回N else { for 每一个属性 A 估计该节点在A上的信息增益 选出最佳的属性A*,将S分裂为Si ,N长出分支 for each Si if Si 为空 then 返回叶节点,标记为S中最普遍的类 else BuildTree(Si,A-A*) } 一般算法存在的伸缩性问题 问题: 限制训练样本存放在内存中。 训练样本在内存和高速缓存中换进换出,效率低。 一些改进方法 采样方法 数据分片、生成多树、多树合并 构造新的数据结构 决策树分类算法 SPRINT串行算法 数据结构 属性选择 基本算法 SPRINT并行算法 SPRINT算法的性能评估 总结 串行算法:数据结构 属性列表:(预排序) 属性值 类标记 记录索引 串行算法:数据结构 直方图 数值字段值: Cabove、Cbelow 种类字段值: count matrix 串行算法:属性选择 统计度量:基尼指数——Gini index 集合S包含N个类别的记录,那么其Gini指标就是 ,pj类j出现的频率 如果集合S分成两部分 S1 and S2 。那么这个分割的Gini就是 提供最小Ginisplit 就被选择作为分割的标准 数值字段:可能的分割点是每两个值的中点 种类字段:可能的分割是属性值的所有子集 使用基尼指数进行属性选择 如计算ginisplit(27.5) S1: S2: Ginisplit(27.5): 同理: Ginisplit(18.5)=0.4 Ginisplit(37.5)=0.417 串行算法:基本算法 Procedure BuildTree(S,A) (S:训练样本集, A:分类属性集合) 初始化样本集S,生成有序属性列表和直方图,创建节点队列,放入N while 队列不为空 { 从队列中取出第一个节点 N if N 纯 or 为空 then 标记为叶节点,continue for N的每一个分割点F 计算该节点F上的基尼指数,选出最佳分割点F*, N长出分支节点N1、N2,放入队列中。将该分割点的 属性列表分割,并用该列表的rids生成记录所在节点的 哈希表,用哈希表分割其他属性列表,列表分割同时 生成属性直方图。 } 属性列表分割如图: 与SLIQ的比较 决策树分类算法 SPRINT串行算法 数据结构 属性选择 基本算法 SPRINT并行算法 SPRINT算法的性能评估 总结 并行算法 数据分布: 在N个处理器间平均分配 属性列表 属性选择 统计度量仍用基尼指数,但对节点的属性直方图的处理与串行时有不同。 数值字段:Cbelow和Cabove必须记录整个节点的类个数,因此在计算最佳分割点前,各处理器的Cbelow和Cabove 要进行全局初始化。 种类字段:count matrix也必须记录整个节点的类个数,因此在分割前由某
原创力文档

文档评论(0)