7章分类指标建模:分类分析
决策树分裂
信息增益:信息熵;信息增益
gain(X)=info(S)-info1(S)=熵-条件熵
CART算法:二分支,Gini系数
C4.5:多分支,连续/离散变量,信息增益比率(info gain ratio)
C4.5如何停止分裂:剩余样本数小于某个给定阈值Minimun_Support,则返回一个叶节点,停止分裂。这是前剪枝(preprune)的实施方式。
后剪枝(postprune):置信度和减少-误差两种算法。
(1)置信度(俗称:可信度)(取值为0-1,典型值为0.75)。设置最小置信度阈值min_confidence,
然后从底部(接近底层,叶节点)依次比较,小于的节点剪枝。可见min_confidence设置得越大(接近1,反之接近0),剪枝强度越大,树越小。
(2)减少-误差剪枝:通过测试集数据,计算每个节点的误差。先计算待剪子树的父决策节点的误差,然后计算待剪字数内所有叶节点的加权误差之和,
然后比较,加权误差之和大于父决策节点的误差,剪枝,否则不能剪除。实际操作:把训练集数据折成N(默认为3)份,取1份作为计算误差的训练集数据,其他用于建立决策树模型。
ID3:多分支,不支持连续变量,信息增益(info Gain)
建立自定义函数来划分训练集和测试集:train.data.persent是训练集占data的比例,默认为0.7(一般划分比例为1:1或7:3)
apart.data<-function(data,train.data.persent=0.7){
train.index<-sample(c(1:nrow(data)),round(nrow(data)*train.data.persent))
data.train<-data[train.index,]
data.train<-data[-c(train.index),]
result<-list(train=data.train,test=data.test)
result
}
p.data<-apart.data(data)
data.train<-p.data$train
data.test<-p.data$test
在R语言中实现C4.5算法: RWeka包中的J48函数调用weka的C4.5算法:J48(formula,data,subset,na.action,control=Weka_control()):
注意:目标变量只能是分类型,必须是factor因子类型

信息增益:信息熵;信息增益
gain(X)=info(S)-info1(S)=熵-条件熵
CART算法:二分支,Gini系数
C4.5:多分支,连续/离散变量,信息增益比率(info gain ratio)
然后从底部(接近底层,叶节点)依次比较,小于的节点剪枝。可见min_confidence设置得越大(接近1,反之接近0),剪枝强度越大,树越小。
然后比较,加权误差之和大于父决策节点的误差,剪枝,否则不能剪除。实际操作:把训练集数据折成N(默认为3)份,取1份作为计算误差的训练集数据,其他用于建立决策树模型。
ID3:多分支,不支持连续变量,信息增益(info Gain)
建立自定义函数来划分训练集和测试集:train.data.persent是训练集占data的比例,默认为0.7(一般划分比例为1:1或7:3)
apart.data<-function(data,train.data.persent=0.7){
}
p.data<-apart.data(data)
data.train<-p.data$train
data.test<-p.data$test
在R语言中实现C4.5算法: RWeka包中的J48函数调用weka的C4.5算法:J48(formula,data,subset,na.action,control=Weka_control()):

注意:目标变量只能是分类型,必须是factor因子类型