决策树CART算法
决策树C4.5算法虽然对决策树ID3算法做了很大的改良,但是缺点也是很明显的,无法处理回归问题、使用较为复杂的熵来作为特征选择的标准、生成的决策树是一颗较为复杂的多叉树结构,CART算法针对这些问题又做了进一步的优化。
一、决策树CART算法学习目标
基尼指数和熵CART算法对连续值和特征值的处理CART算法剪枝决策树CART算法的步骤决策树CART算法的优缺点
二、决策树CART算法详解
CART的英文名全称是classification and regression tree,所以有时候也把CART称它为分类回归树,分类回归树由特征选择、树的生成以及剪枝组成,既可以用于分类也可以用于回归。
2.1 基尼指数和熵
# 基尼指数和熵示例图 import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties %matplotlib inline font = FontProperties(fname='/Library/Fonts/Heiti.ttc') p = np.arange(0.001, 1, 0.001) gini = 2*p*(1-p) entropy = -(p*np.log2(p) + (1-p)*np.log2(1-p))/2 error = 1-np.max(np.vstack((p, 1-p)), 0) plt.plot(p, entropy, 'r-', label='基尼指数') plt.plot(p, gini, 'g-', label='熵之半$(1/2*H(p))$') plt.plot(p, error, 'b-', label='分类误差率') plt.xlabel('p', fontproperties=font) plt.ylabel('损失', fontproperties=font) plt.legend(prop=font) plt.show()
上图可以看出二分类问题中基尼指数和熵的曲线非常接近,因此基尼指数可以作为熵的一个近似替代。而CART算法就是使用了基尼指数来选择决策树的特征,同时为了进一步简化基尼指数的计算,C