r语言随机森林回归预测_从零实现回归随机森林

更新时间:2023-05-20 09:58:24 阅读: 评论:0

⼀、前⾔
回归随机森林作为⼀种机器学习和数据分析领域常⽤且有效的算法,对其原理和代码实现过程的掌握是⾮常有必要的。为此,本⽂将着重介绍从零开始实现回归随机森林的过程,对于随机森林和决策树的相关理论原理将不做太深⼊的描述。本⽂的⽬的只是为了演⽰回归随机森林主要功能的具体实现过程,在实现过程中不会考虑代码性能,会更加注重代码可读性。
实现语⾔:Python
图 1. 四种不同的impurity function
图 2. RFR训练⽰意图
bootstrap[1]是对输⼊训练样本集合
进⾏
图 3. 回归决策树训练过程
mobbedRFR的预测结果是由内部所有⼆叉决策树的预测结果取平均值得到的。⼆叉决策树的预测过程主要分为以下步骤:
针对某⼀输⼊样本,从⼆叉决策树的根节点起,判断当前节点是否为叶⼦节点,如果是则返回叶⼦节点的预测值(即当前叶⼦中样本⽬标变量的平均值),如果不是则进⼊下⼀步;
使⽤训练数据训练模型;bec 报名
计算训练数据在模型上依据某⼀metric的score,记为
(在回归中,可以选⽤r2);
遍历训练数据集中的每⼀个feature,每次在原训练数据集的基础上将对应的feature进⾏shuffle操作,然后使⽤模型得到shuffle后数据集的score,记为
policeman是什么意思,最后通过
计算出第
个feature的重要性。
⽅法2
如果⼀个feature很重要,那么从数据集中去除该feature后,模型的prediction error会增⼤;相反,如
果⼀个feature不重要,那么从数据集中去除后,模型的prediction error不会变化太⼤。该⽅法的步骤如下:
使⽤原数据集训练模型,并评估模型在训练数据集上的prediction error,记为
;
遍历训练数据集中的每⼀个feature,每次从原训练数据集的基础上去除该feature,然后使⽤得到数据集训练模型,最终计算出prediction error,记为
美国之声第七季,最后通过
marryme是什么意思计算出第
个feature的重要性。
该⽅法和⽅法1有点类似,但该⽅法在计算每个feature的重要性的时候都需要重新训练模型,会增加额外的计算量,在实际应⽤⼀般不采⽤该⽅法。
⽅法3
smili
该⽅法是sklearn内部树模型计算feature重要性时采⽤的⽅法。即某⼀节点
的重要性为
(2-5)
其中,
分别为节点
以及其左右⼦节点中训练样本个数与总训练样本数⽬的⽐例,
面试 缺点
分为为节点
以及其左右⼦节点的不纯度。知道每⼀个节点的重要性之后,即可通过公式(2-6)得出某⼀feature的重要性。
(2-6)
为了使所有feature的重要性加起来等于1,需要每⼀feature的重要性进⾏normalization,即公式(2-7)
(2-7)
⽅法3在sklearn中的实现,请查看_tree.pyx。
⽅法3。
⽅法1和⽅法3
在本⽂实现的RFR中,同时实现了⽅法1
hotpot三、回归随机森林实现
3.1 代码
代码有点长,不想看的可以直接跳过。
from multiprocessing import Pool, cpu_countscience muum怎么读>gunners
class RFRegressor(object):
"""Random Forest Regressor
"""

本文发布于:2023-05-20 09:58:24,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/115664.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:训练   过程   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图