R的阶段性复习小结–决策树
1、决策树知识点
算法特点:
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可处理不相关的特征变量,适合探索性的数据发现
缺点:可能产生过拟合问题
决策树算法不需要特征归一化;不同的熵度量函数对决策树的影响较小
决策树或回归树尽量使用二叉树(熵的变化不会太快,避免过拟合).
包
算法 | 分类标准 | 程序包 | 函数 | 特点 |
---|---|---|---|---|
ID3算法 | 选择信息增益最高的属性作为最优划分属性 | rpart包 | rpart函数(prune修剪) | 只支持分类变量可为多叉树 |
C4.5算法 | 选择信息增益率最高的属性最优划分属性 | RWeka包 | J48函数 | C4.5应用于大数据集 |
C5.0算法 | C4.5改进 | C50包 | C5.0函数 | 只支持分类变量 |
CART算法 | 选择基尼指数最小的属性作为最优划分属性 | tree包, rpart包 | tree函数, rpart函数(prune修剪) | 支持分类、连续型变量,只能是二叉树 |
条件推断树算法 | 显著性检验 | ctree函数 | party包 | 只支持分类变量 |
建立树模型要权衡两方面问题
(1)分组后变异较小,也就是cp提升的越小越好,其中,cp全称为complexity parameter,指某个点的复杂度,也就是熵
(2)防止过拟合(使模型的误差过大),由xerror衡量,即交叉检验的模型预测误差
前者参数是CP,后者参数是Xerror,故要在Xerror最小情况下也使CP尽量小。利用plotcp函数、printcp函数、或者cptable选取合适cp值,然后利用prune对决策树进行修剪和优化。
剪枝可以分为两种
1.预剪枝:一旦决策树达到一定数量决策,或者决策节点仅含有少量错误案例,就停止树生长
2.后剪枝:决策树生长的过大,就根据节点错误率使用修剪准则将决策树减小到更合适的大小
rpart()函数:
rpart(formula,data,weights,subsets,na.action=na.rpart,method,parms,control…)
使用ID3算法时候,split = “information” ,使用CART算法的时候, split = “gi