- 决策树:
https://blog.csdn.net/weixin_43909872/article/details/85206009
- CART
Classification and regression tree
https://www.cnblogs.com/yonghao/p/5135386.html
CART 是在给定输入X条件下输出随机变量Y的条件概率分布的学习方法。CART对每个特征(包括标签特征以及连续特征)进行二分,经过最优二分特征及其最优二分特征值的选择、切分,二叉树生成,剪枝来实现CART算法。对于回归CART树选择误差平方和准则、对于分类CART树选择基尼系数准则进行特征选择,并递归调用构建二叉树过程生成CART树。 CART既可以用于分类也可以用于回归。
CART算法分两步:
a. 决策树生成:基于训练数据生成决策树,决策树尽量大
b. 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,用损失函数最小作为剪枝的标准
- iris数据集的分析:
算法步骤:
a. load iris data, 打乱顺序,取前100个为训练数据,30个validation data,用于剪枝,剩下20个用于最后测试。
data = pd.read_csv("iris.csv")
data = data.sample(frac=1.0)
data = data.reset_index()
deleteColumns = [0,1]
data.drop(data.columns[deleteColumns], axis=1, inplace=True)
trainDataset = data.loc[0:99]
validationDataset = data.loc[100:129]
testDataset = data.loc[130:-1]
b. 递归建立二叉树,对当前数据集选择最好的划分方式
最好的划分方式就是挨个用feature值里的每个例子的值去尝试划分,选择Gain(Gini)最大的划分方式,返回值是选定的feature和所用的value,我们设置了两个阈值&