决策树和随机森林介绍

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

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

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

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

决策树的优点

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

决策树的缺点

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

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

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

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

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

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

为什么随机森林更聪明?

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

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

三.总结

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

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

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

相关推荐
limingade2 小时前
手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)
物联网·算法·智能手机·数据分析·信息与通信
jiao000015 小时前
数据结构——队列
c语言·数据结构·算法
迷迭所归处6 小时前
C++ —— 关于vector
开发语言·c++·算法
leon6256 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林6 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z7 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
Aic山鱼7 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
天玑y7 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
sjsjs117 小时前
【数据结构-一维差分】力扣1893. 检查是否区域内所有整数都被覆盖
数据结构·算法·leetcode
redcocal8 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘