基于R的数据挖掘方法与实践(3)——决策树分析

决策树构建的目的有两个——探索与预测。探索方面,参与决策树声场的数据为训练数据,待树长成后即可探索数据所隐含的信息。预测方面,可以借助决策树推导出的规则预测未来数据。由于需要考虑未来数据进入该模型的分类表现,因此在基于训练数据构建决策树之后,可以用测试数据来衡量该模型的稳健性和分类表现。通过一连串的验证过程,最后得到最佳的分类规则,用作未来数据的预测。

1决策树构建理论

决策树的建立步骤包括数据准备、决策树生长、决策树修剪及规则提取。

1.1数据准备

决策树的分析数据包括两类变量:一是根据问题所决定的目标变量;二是根据问题背景与环境所选择的各种属性变量作为分支变量。分支变量是否容易理解与解释将决定决策树分析结果。

(1)二元属性:其测试条件可以产生两种结果。

(2)名目属性:名目属性结果的多少可以用不同属性值来表示,如血型可以分为A、B、AB、O四种类别。

(3)顺序属性:可以生成二元或二元以上的分割,其属性可以是群组,但群组必须符合属性值顺序特征。如年龄可以分为青年、中年、老年,

(4)连续属性:连续属性的条件可以表示成x<a或x>=a的关系。决策树必须考虑到所有可能的分割点y,再从中选出最好的分割。

取得数据后,将所搜集的数据分为训练数据集和测试数据集,数据分割可参照如下方法:

数据分割是将数据分成训练数据集、测试数据集和验证数据集。训练数据集用来建立模型,测试数据集用来评估模型是否过度复杂及其通用性,验证数据集则用以衡量模型的好坏,例如分类错误率、均方误差。一个好的训练模式应该对于未知的数据仍有很好的适配度,若当模式复杂程度越来越高,而测试数据的误差却越来越大,表示该训练模型有过度配适的问题。

数据分割的比例有不同的定义,均应代表原来的数据。一种方法是抽取80%的数据作为训练数据集构建模型,剩下的20%用于模型的效度检验。另一种方法是k-fold交互验证。该方法首先将数据分为k等份,每次抽取k-1份数据进行模式训练,剩下的1份数据用于测试模型,如此重复k次,使每笔数据都能成为训练数据集与测试数据集,最后的平均结果则用来代表模型的效度。该方法适合于样本数较少的情况,可以有效涵盖整个数据,但缺点是计算时间很长。

在决策树构建过程中,如果一个决策树模型仅在训练数据中有很低的错误率,但在测试数据集中有很高的错误率,则说明该决策树模型过度配适,造成模型无法用于估计其他数据。因此建立决策树模型后,应根据估计测试数据的分类表现,适当地修剪决策树,增加其分类或预测的争取性,避免过度配适。

1.2决策树分支准则

决策树的分支准则决定了树的规模大小,包括宽度和深度。常见的分支准则有:信息增益、Gini系数、卡方统计量、信息增益比等。

假设训练数据集有k个类别,分别为C1、C2、……、Ck,属性A有l中不同的数值,A1、A2、……、Al。

属性

类别

C1

C2

Ck

总和

A1

x11

x12

x1k

x1.

A2

x21

x22

x2k

x2.

Al

xl1

xl2

xlk

xl.

总和

x.1

x.2

x.k

N

(1)信息增益

信息增益是根据不同信息的似然值或概率衡量不同条件下的信息量。

若每个类别的数据个数定义为x.j,N为数据集合中所有数据的个数,类别出现的概率为pj = x.j/N,根据信息论可以知道,各类别的信息为-log2(pj),因此各类别C1、C2、……、Ck所带来的信息总和Info(D)为:

Info(D)= - (x.1/N)*log2(x.1/N) - (x.2/N)*log2(x.2/N) - … - (x.k/N)*log2(x.k/N)

Info(D)又称为熵,常用以衡量数据离散程度。当各类别出现的概率相等,则Info(D)=1,表示该分类的信息复杂程度最高。

假设该数据集D要根据属性A进行分割,产生共L各数据分割集Di,其中xi.为各属性值Ai下的分割数据总个数xij为属性值Ai下且为类别Cj的个数,因此可计算属性Ai下的信息Info(Ai):

Info(Ai)= - (xi1/ xi.)*log2(xi1/ xi.) - (xi2/ xi.)*log2(xi2/ xi.) - … - (xik/ xi.)*log2(xik/xi.)

属性A的信息则根据各属性值下数据个数多寡决定:

InfoA(D)= (x1./N)*Info(A1) + (x2./N)*Info(A2) + … + (xl./N)*Info(Al)

信息增益可以表示为原始数据的总信息量减去分之后的总信息量,以表示属性A作为分支属性对信息的贡献程度。以此类推可以计算出各个属性作为分支变量能带来的信息贡献度,比较后可找出具有最佳信息增益的信息属性。

(2)Gini系数

Gini系数是衡量数据集合对于所有类别的不纯度。

Gini(D)= 1 – sum(j = 1, ….,k, pj^2)

各属性值Ai下数据集合的不纯度Gini(Ai)为:

Gini(Ai)= 1 – (xi1/xi.)^2 – (xi2/xi.)^2 - ……, – (xik/xi.)^2

属性A的总数据不纯度为:

GiniA(D)= (x1./N)*Gini(A1) + (x2./N)*Gini(A2) + … + (xl./N)*Gini(Al)

属性A对不纯度减少的贡献:

deltaGini(A)= Gini(D) –GiniA(D)

(3)卡方统计量

卡方统计量是用列联表来计算两列变量之间的相依程度,当计算出的样本卡方统计值越大,表示两变量之间的相依程度越高。

(4)信息增益比

信息增益比是考虑候选属性本身所携带的信息,在将这些信息转移至决策树,经由计算增益与分支属性的信息量的比值来找出最适合的分支属性。

(5)方差

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值