组件名称

  决策树分类 [版本号:1] [更新时间:2018-05-08]

简介

  机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。 决策树的优缺点: 优点: 1)可以生成可以理解的规则。 2)计算量相对来说不是很大。 3)可以处理多种数据类型。 4)决策树可以清晰的显示哪些字段较重要。 缺点: 1)对连续性的字段比较难预测。 2)有时间顺序的数据,要很多预处理工作。 3)当类别太多时,错误可能就会增加较快。 早期著名的决策树算法是1986年由Quinlan提出的ID3算法。ID3算法运用信息熵理论,选择当前样本集中最大信息增益的属性值作为测试属性;样本集的划分则依据测试属性的值进行,测试属性有多少不同取值就将样本集划分为多少子样本集,同时,决策树上相应于该样本集的节点长出新的叶子节点。由于决策树的结构越简单越能从本质的层次上概括事物的规律,期望非叶节点到达后代节点的平均路径总是最短,即生成的决策树的平均深度最小,这就要求在每个节点选择好的划分。 平台中的主要算法组件用到的为ID3算法,和CART树算法。 1.ID3算法的基本原理如下:该算法是一种贪心算法,它以自顶向下递归的各个击破方式构造决策树。算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好地将样本分类的属性。对测试属性的每个已知的值,创建一个分枝,并据此划分样本。这种信息理论方法使得一个对象分类所需的期望测试数目达到最小,并确保找到一颗简单的树。计算每个属性的信息增益值的方法如下: 设D是|D|个数据样本的集合。假定类标号属性具有k个不同值,定义k个不同类CiC_{i}(i=1,…k)。A代表特征,将样本分为n类。 则(1)InfoGain(D,A)=H(D)-H(D|A) (2)H(D)=-i=1kpilogpi\sum _{i=1}^{k}p_{i}logp_{i} (3)H(D|A)=-j=1npjlogpji=1kpijlogpij\sum _{j=1}^{n}p_{j}logp_{j}\sum _{i=1}^{k}p_{ij}logp_{ij} ID3选择gain(A)最大的属性A作为根结点,决策树建好后,就可以生成许多规则:类似if…then…知识规则。系统根据测试内节点的值,推断出相关规则。 2.cart树 cart(classification and regression tree)分类回归树,同样有特征选择、树的生成和剪枝。当cart为分类树时,按照基尼指数进行特征选择,公式如下: 设D是|D|个数据样本的集合。假定类标号属性具有k个不同值, 第i类样本个数|DiD_{i}|,则Gini(D)=1-i=1kpi2\sum _{i=1}^{k}p_{i}^{2}。 样本集合D,根据特征A是否取某值a,分割为D1,D2D_{1},D_{2}。 Gini(D,A)=D1DGini(D1)+D2DGini(D2)\frac{D_{1}}{D}Gini(D_{1})+\frac{D_{2}}{D}Gini(D_{2})。 Gini(D,A)表示数据经过特征A分割后的不确定性。 在树的生成过程中,在所有可能的特征A以及它们所有可能的切分点a中选择基尼系数最小的特征及其对应的切分点作为最优特征与最优切分点。 对于cart树的剪枝,cart剪枝算法从“完全生长”的决策树的底端减去一些子树,使决策树变小,从而能够对未知数据有更准确的预测。cart剪枝算法由两步组成:首先从生成算法产生的决策树底端开始不断剪枝,直到根节点,形成一个子树序列;然后通过交叉验证法在独立的验证数据集上对子树序列进行验证,从中选择最优子树。

输入和输出

  输入端口个数:1

  输出端口个数:1

参数配置

参数名称 参数说明 参数默认值 是否必填
计算信息增益的准则 用于信息增益计算的标准(不区分大小写)。可支持的选项: entropy,gini gini -
最小实例数 每个子项在拆分后必须具有的最小实例数。 如果拆分后导致左或右子节点少于最小实例数,则此拆分将作为无效丢弃。 可选 1 -
种子数 设置随机种子数值,大于0的整数. 默认是空 可选 -
最大树深 5 -
最小信息增益值 分裂节点时所需最小信息增益值 可选 0 -
最大的划分数 连续型特征离散化的最大数量 可选 32 -

字段配置

字段名称 字段说明 字段默认值 是否必配
训练特征列 必选 支持Double/Int类型字段 必填
目标列 必选 必填

输出节点的字段配置说明

  运行后不生成新字段。后续节点可以直接选择字段。

results matching ""

    No results matching ""