Python学习第83天:决策树和随机森林
Python学习100天(从入门到精通系列文章)
文章目录
- Python学习100天(从入门到精通系列文章)
- 前言
- 一、决策树概述
- 1.1 什么是决策树
- 1.2 决策树的结构
- 1.3 构建决策树的三个核心步骤
- 二、特征选择
- 2.1 信息熵
- 2.2 条件熵与信息增益
- 2.3 信息增益比
- 2.4 基尼指数
- 2.5 三种特征选择方法对比
- 三、数据分裂与树的剪枝
- 3.1 数据分裂过程
- 3.2 连续值与缺失值处理
- 3.3 树的剪枝
- 四、使用 scikit-learn 实现决策树
- 4.1 基础用法
- 4.2 可视化决策树
- 4.3 调整参数后的决策树
- 4.4 DecisionTreeClassifier 重要参数
- 4.5 网格搜索调优
- 五、随机森林
- 5.1 什么是随机森林
- 5.2 随机森林的工作流程
- 5.3 随机森林的优缺点
- 5.4 使用 scikit-learn 实现随机森林
- 5.5 网格搜索调优
- 5.6 RandomForestClassifier 特有参数
- 六、决策树 vs 随机森林对比
- 七、常见错误与避坑指南
- 7.1 错误一:决策树不限制深度导致过拟合
- 7.2 错误二:随机森林树的数量太少
- 7.3 错误三:混淆三种特征选择方法
- 参考链接
- 总结
前言
上一篇文章我们学习了 kNN 算法——一种"近朱者赤,近墨者黑"的惰性学习算法。今天,我们将深入探讨另一种经典的监督学习算法:决策树,以及基于决策树的集成学习方法——随机森林。决策树模拟了人类做决策时的分支判断过程,直观易懂;随机森林则通过"三个臭皮匠顶个诸葛亮"的集成思想,大幅提升了模型的准确性和鲁棒性。本文适合有 Python 和 NumPy 基础、正在系统学习机器学习的读者。
一、决策树概述
1.1 什么是决策树
决策树(Decision Tree)是一种基于树结构的监督学习算法,可用于分类和回归任务。它通过将数据集逐步分割成不同的子集,直到满足某些停止条件,以此实现预测目标。
我们生活中做决策时也会用到类似的方法。例如,某位女生约见相亲对象的决策方法就可以绘制成如下所示的决策树:
如果具备一定的编程常识,你会发现用决策树做预测的过程相当于是执行了一系列的if...else...结构;如果从概率论的角度看,决策树的构建也可以视为计算以特征空间为前提的条件概率的过程。
