决策树和随机森林介绍

hello大家好,俺是没事爱瞎捣鼓又分享欲爆棚的叶同学!!!今天我来给大家介绍一下决策树与随机森林,说起随机森林俺还有件很久远的丑事,之前有关课的结课作业就是用模型训练并预测,那时我比较天真,想着先玩,然后随便在网上找个代码糊弄糊弄就行了,然后到答辩那天我站在讲台上说出:"本次预测用了随机森林",讲的绘声绘色,那自信的差点把自己都骗了哈哈哈哈,然后俺讲完,老师点评时,望着手中的报告笑着说了句:"你这代码里也没涉及随机森林啊!?!?怎么回事啊!?",我心想(啊?完蛋!开摆!)然后厚着脸皮礼貌的笑了笑说:"哎!那不知道哎......", 然后老师也很善解人意的放过了我哈哈哈哈!噗嗤又扯了这么多,下面进入正题哈!!!

一.决策树:像问问题做决定

就和你在打 "某者荣耀" ,需要根据对面阵容出装备。你就可以通过一系列问题来做决定。比如,你先问自己:"对面有没有高爆发的物理输出的?"如果有,你可能会出反甲或不祥征兆来提高物理防御。接着你再看:"对面有很老6的法师没?"如果有,你可能会选择魔女斗篷或破魔刀来增强魔抗。如果发现对面控制技能很多,你可能会考虑出辉月或净化来规避致命的控制......。通过这一系列问题,你一步步分析对面阵容,选择最佳装备来应对,帮助自己和团队取得胜利。

这就是决策树的工作方式。它通过不断问问题(这些问题就是你的数据里的"特征"),一步步缩小范围,直到得出最终结论。

决策树的优点

  • 直观简单:像玩游戏一样,易于理解。
  • 直接使用数据:几乎不需要复杂的数据预处理。

决策树的缺点

  • 容易过拟合:如果问题太多、问得太细,可能会对训练数据依赖过度,从而导致在新数据上表现不佳。
  • 不稳定:小的变化可能导致整棵树的结构和结果发生变化。

二.随机森林:集思广益,避免偏见

单一的决策树有时会"想太多"或"走偏",这时我们可以依靠多个树的集体智慧。这就是随机森林的核心思想。

随机森林就是让很多棵决策树(通常几十到几百棵)一起工作,每棵树独立思考,然后通过投票决定最终答案。

随机森林有两个重要策略:

  1. 随机抽样:每棵树都从原始数据中随机抽取一部分样本来训练,这让每棵树看到的数据不同,每个"专家"都有自己独特的视角。
  2. 随机选择特征:在每个节点分裂时,每棵树只随机选择一部分特征来考虑,这让每棵树的决策过程各不相同。

为什么随机森林更聪明?

  • 避免单一思考:每棵树独立思考,避免了单一决策树可能陷入的"过拟合"问题。
  • 集体智慧:通过结合多棵树的判断,最终结果更加可靠和准确。
举个例子

假设你是一位班主任,要预测学生的期末成绩。你有学生的出勤率、作业完成情况、平时测验成绩等信息。你可以用一棵决策树来做预测,但它的准确性可能有限。如果你使用100棵决策树,每棵树基于不同的信息和数据做出预测,然后结合所有树的结果,你就得到了一个随机森林模型。这样,预测结果会更准确,因为它结合了多个"专家"的意见。

三.总结

决策树 就像是一个喜欢问问题的小专家,它通过一步步提问来做出决策。但它有时会过度依赖训练数据,导致在新问题上表现不佳。随机森林则由许多这样的"小专家"组成,他们各自独立思考,然后结合大家的意见,最终做出更准确的决策。

使用随机森林,你能得到更稳定、更靠谱的预测结果,这也是它在数据分析和机器学习任务中广受欢迎的原因。

希望能让你对决策树和随机森林有进一步的了解!!!

相关推荐
冠位观测者1 小时前
【Leetcode 热题 100】208. 实现 Trie (前缀树)
数据结构·算法·leetcode
小王爱吃月亮糖2 小时前
C++的23种设计模式
开发语言·c++·qt·算法·设计模式·ecmascript
IT猿手4 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解LRMOP1-LRMOP6及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·算法·matlab·智能优化算法·多目标算法
InfiSight智睿视界5 小时前
AI 技术,让洗护行业焕然「衣」新
人工智能·算法
程序员一诺5 小时前
【机器学习】嘿马机器学习(算法篇)第11篇:决策树算法,学习目标【附代码文档】
人工智能·python·算法·机器学习
Evand J5 小时前
平方根无迹卡尔曼滤波(SR-UKF)算法,用于处理三维非线性状态估计问题
算法
taoyong0015 小时前
代码随想录算法训练营第十五天-二叉树-110.平衡二叉树
数据结构·算法
-芒果酱-5 小时前
k-Means聚类算法 HNUST【数据分析技术】(2025)
算法·kmeans·聚类
渣渣威的仿真秀6 小时前
Jensen-Shannon Divergence:定义、性质与应用
人工智能·算法·概率论
柒月的猫6 小时前
求和(2022蓝桥杯A组试题C)
c语言·算法·蓝桥杯