Task02 基于决策树的分类预测

本文深入介绍了决策树的概念,包括其优点如可解释性和计算复杂度低,以及缺点如过拟合和对连续特征处理不佳。通过企鹅数据集的实战,展示了决策树在数据探索与分析、训练和预测中的应用。此外,文章讨论了决策树的重要知识点,如信息增益、基尼系数和关键参数。最后,提到了ID3、C4.5、CART的区别,以及随机森林和XGBoost的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1决策树的介绍和应用

决策树的核心思想是基于树结构对数据进行划分:
在这里插入图片描述
如上图:决策树的结构一般包含一个根节点,若干个内部节点和若干个叶节点;根节点包含所有样本。内部节点是样本的属性,叶节点是结论。每条从根节点到叶节点的路径就代表一种属性判定路径。

1.1 决策树的主要优点:

(1) 具有很好的解释性,模型可以生成可以理解的规则。
何为可解释性?即模型逻辑/预测结果多大程度上是人类可以理解的,也就是说我们能够理解一个模型的整个逻辑,并遵循整个推理导致所有不同的可能结果。
(2)可以发现特征的重要程度。
特征的重要程度,比如我们如何知道根节点需要选择“有房”这个属性,而不是其他的“有车”“有存款”等等?数学上有一种方法就是信息熵。整个过程的描述有点复杂,可以查看链接: link.除了信息熵以外还有基尼系数,这一点下面会讲到。
(3)模型的计算复杂度较低。
对于第三点,个人理解,树结构无非就是多个if-else判断,执行起来自然不会太复杂。

1.2 决策树的主要缺点:

(1) 模型容易过拟合,需要采用减枝技术处理。
容易过拟合是因为每个属性都被详细地加以考虑,一棵树如果结点过多,表明该模型可能对数据进行了“过拟合”。
通过降低树的复杂度来避免过拟合的过程称为剪枝(pruning)。一般有两种剪枝方法,分别是预剪枝和后剪枝,预剪枝技术主要是通过建立某些规则限制决策树的充分生长, 后剪枝技术则是待决策树充分生长完毕后再进行剪枝。
(2)不能很好利用连续型特征。
(3)预测能力有限,无法达到其他强监督模型效果。
(4)方差较高,数据分布的轻微改变很容易造成树结构完全不同。

1.3 决策树的应用

还是一样使用一个小Demo讲解。
首先是使用决策树需要导入的库函数

## 导入决策树模型函数
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree

然后调用模型,用于拟合数据集

##Demo演示LogisticRegression分类

## 构造数据集
x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 1, 0, 1, 0, 1])
## 调用决策树回归模型
tree_clf = DecisionTreeClassifier()

## 调用决策树模型拟合构造的数据集
tree_clf = tree_clf.fit(x_fearures, y_label)

这里构造的数据一共有6个样本,分为两类,每类各三个样本。
我们可以可视化决策树,观察内部地逻辑结构

## 可视化决策树
import graphviz
dot_data = tree.export_graphviz(tree_clf, out_file=None)
graph = graphviz.Source(dot_data)
graph.render
基于决策树衍生的算法有很多,以下是其中一些常见的算法: 1. 随机森林(Random Forest):随机森林是一种集成学习方法,它通过构建多个决策树并基于投票或平均来进行预测。每个决策树是基于不同的样本和特征集构建的,通过减少过拟合和提高泛化能力来提升模型性能。 2. 梯度提升树(Gradient Boosting Tree):梯度提升树是一种迭代的集成学习方法,通过将多个弱分类器(通常是决策树)进行加权组合来构建一个强分类器。它通过迭代的方式不断减小损失函数,从而提高模型的预测能力。 3. AdaBoost(Adaptive Boosting):AdaBoost是一种自适应增强算法,它通过迭代的方式不断调整样本的权重,使得分类器能够更好地适应训练数据。在每一轮迭代中,AdaBoost会根据前一轮的分类结果调整样本的权重,使得被错误分类的样本在下一轮迭代中得到更多的关注。 4. XGBoost(eXtreme Gradient Boosting):XGBoost是一种基于梯度提升树的高效实现,它在梯度提升树的基础上引入了一些优化技巧,如并行计算、缺失值处理和正则化等,从而提高了模型的性能和训练速度。 这些算法在不同的应用领域和数据类型上都有广泛的应用,它们都是基于决策树的思想,并通过不同的机制来进一步提升模型的性能和泛化能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于决策树的MNIST数字分类](https://blog.youkuaiyun.com/m0_37758063/article/details/123646270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值