2019独角兽企业重金招聘Python工程师标准>>>
- 条件推断树
条件推断树与传统决策树类似,但变量和分割的选取是基于显著性检验的,而不是纯进度或同质性一类的度量。 显著性检验是置换检验
- 算法
(1)对输出变量与每个预测变量间的关系计算 p 值
(2)选择 p 值最小的变量
(3)在因变量与被选中的变量间尝试所有可能的二元分割(通过排列检验),并选取最显著的分割
(4)将数据集分成两群,并对每个子群重复上述步骤
(5)重复至所有分割都不显著或已到达最小节点为止
条件推断树可由 party包中的 ctree() 函数获得
> library(party)
> fit.ctree <- ctree(class~.,data = df.train) #生成树
> plot(fit.ctree,main="Conditional Inference Tree") #如下图1
>ctree.perd <- predict(fit.ctree,df.validate,type = "response") #对训练集外样本单元分类
> ctree.perf <- table(df.validate,ctree.perd,dnn = c("Actual","Predcted"))
> ctree.perf
Predicted
Actual benign malignant
benign 122 7
malignant 3 78
图1 乳腺癌的条件推断树
每个节点中的阴影区域代表这个节点对应的恶性肿瘤比例