欢迎您光临本公司官方网站!
全国服务热线:13713845237

行业新闻

主页 > 行业信息 > 行业新闻 >

决策树分类器--sparkmllib

2020-11-02 20:40来源:本站 作者:admin点击:

  决策树(decision tree)是一种基本的分类与回归方法,这里主要介绍用于分类的决策树。决策树模式呈树形结构,其中每个内部节点表示一个属性上的测试•,每个分支代表一个测试输出,每个叶节点代表一种类别。学习时利用训练数据,根据损失函数最小化的原则建立决策树模型;预测时,对新的数据,利用决策树模型进行分类•。

  首先定义信息论中广泛使用的一个度量标准熵(entropy)•,它是表示随机变量不确定性的度量。熵越大,随机变量的不确定性就越大。而信息增益(informational entropy)表示得知某一特征后使得信息的不确定性减少的程度。简单的说•,一个属性的信息增益就是由于使用这个属性分割样例而导致的期望熵降低。信息增益、信息增益比和基尼指数的具体定义如下:

  基尼指数:分类问题中,假设有K个类,样本点属于第K类的概率为$p_k$, 则概率分布的基尼指数定义为:

  (二)决策树的生成从根结点开始,对结点计算所有可能的特征的信息增益•,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点•,再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增均很小或没有特征可以选择为止,最后得到一个决策树。

  决策树需要有停止条件来终止其生长的过程。一般来说最低的条件是••:当该节点下面的所有记录都属于同一类,或者当所有的记录属性都具有相同的值时。这两种条件是停止决策树的必要条件,也是最低的条件。在实际运用中一般希望决策树提前停止生长,限定叶节点包含的最低数据量,以防止由于过度生长造成的过拟合问题。

  决策树生成算法递归地产生决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化•,这个过程称为剪枝。

  决策树的剪枝往往通过极小化决策树整体的损失函数来实现。一般来说•,损失函数可以进行如下的定义•: $$ C_a(T)=C(T)+a\leftT\right $$ ​ 其中•,T为任意子树,$C(T)​$ 为对训练数据的预测误差(如基尼指数),$\leftT\right​$ 为子树的叶结点个数,$a\ge0​$为参数,$C_a(T)​$ 为参数是$a​$时的子树T的整体损失•,参数$a​$权衡训练数据的拟合程度与模型的复杂度•。对于固定的$a​$,一定存在使损失函数$C_a(T)​$ 最小的子树,将其表示为$T_a​$ •。当$a​$大的时候,最优子树$T_a​$偏小;当$a​$小的时候•,最优子树$T_a​$偏大。

  我们以iris数据集()为例进行分析。iris以鸢尾花的特征作为数据来源,数据集包含150个数据集•,分为3类•,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中非常常用的测试集•、训练集。

  然后,调用决策树的trainClassifier方法构建决策树模型,设置参数,比如分类数、信息增益的选择、树的最大深度等:

99真人