决策树是一种基本的机器学习算法,用于分类和回归问题。它通过对数据集进行递归分割,构建一棵树状结构来进行预测和决策。
决策树——数据收集——特征选择(作为决策树节点)——决策树生成(特征构建决策树模型)——剪枝(提高模型泛化能力)——评估(交叉验证)——应用(分类,回归问题)
一.ID3算法(处理分类问题)
ID3算法使用信息增益作为属性选择的方法,选择最大信息增益的属性作为节点分裂属性。
1.算法步骤:
(1)计算数据集的熵:首先,计算整个数据集的熵,用于衡量数据的不确定性。
(2)选择最佳划分属性:对于每个特征,计算其对于分类的信息增益。信息增益是整个数据集熵与划分后的子集熵之差。选择信息增益最大的特征作为最佳划分属性。
(3)根据最佳划分属性划分数据集:根据最佳划分属性将数据集划分为多个子集。
(4)递归构建决策树:对于每个子集,重复上述步骤,直到满足终止条件(如所有样本属于同一类别或没有更多特征可用)。
2.优缺点
- 优点:简单易懂,可解释性强。可以处理缺失值和离散特征。
- 缺点:不能处理具有连续值,缺失值的属性,对于连续特征处理不方便,倾向于选择具有更多取值的特征作为分裂属性,可能导致过拟合。
二.C4.5算法
C4.5算法使用信息增益率作为属性选择的方法,选择最大信息增益比的属性作为节点分裂属性,同时支持处理缺失值的数据。
1.算法步骤
(1)计算数据集的熵:与ID3算法相同,计算整个数据集的熵。
(2)计算每个特征的信息增益比:对于每个特征,计算其对于分类的信息增益。然后,计算信息增益比,即信息增益除以划分属性的固有信息。选择信息增益比最大的特征作为最佳划分属性。
(3)根据最佳划分属性划分数据集:与ID3算法相同,根据最佳划分属性将数据集划分为多个子集。
(4)递归构建决策树:与ID3算法相同,对于每个子集,重复上述步骤,直到满足终止条件。
2.优缺点
- 优点:相对于ID3算法,C4.5算法解决了连续特征处理问题,并且可以处理缺失值。同时,C4.5算法能够对生成的决策树进行修剪,提高泛化能力。
- 缺点:计算信息增益比需要消耗较多的计算资源。
三.CART算法(处理分类,回归问题)
CART算法使用基尼系作为属性选择的方法,选择最小基尼指数的属性作为节点分裂属性。
1.算法步骤
(1)选择最佳划分属性和划分点:对于每个特征,选择最佳划分属性和划分点,使得划分后的子集的纯度最大化(如基尼指数最小化)。
(2)根据最佳划分属性和划分点划分数据集:根据最佳划分属性和划分点将数据集划分为多个子集。
(3)递归构建决策树:对于每个子集,重复上述步骤,直到满足终止条件(如所有样本属于同一类别或达到预定的树深度)。
(4)剪枝:对构建好的决策树进行剪枝操作,减少过拟合。
2.优缺点
- 优点:CART算法可以处理连续特征和离散特征,能够生成二叉树。同时,CART算法可以用于分类和回归问题。
- 缺点:CART算法倾向于生成较深的树,容易过拟合