当前位置:   article > 正文

基于python的随机森林回归实现_从零实现回归随机森林

python地理加权随机森林回归

d1e51b3ec2095c90340f45f3b7426370.png

一、前言

回归随机森林作为一种机器学习和数据分析领域常用且有效的算法,对其原理和代码实现过程的掌握是非常有必要的。为此,本文将着重介绍从零开始实现回归随机森林的过程,对于随机森林和决策树的相关理论原理将不做太深入的描述。本文的目的只是为了演示回归随机森林主要功能的具体实现过程,在实现过程中不会考虑代码性能,会更加注重代码可读性。

实现语言:Python

依赖:pandas, numpy

二、原理介绍

随机森林属于Bagging类算法,而Bagging 又属于集成学习一种方法(集成学习方法大致分为Boosting和Bagging方法,两个方法的不同请参考[10]),集成学习的大致思路是训练多个弱模型打包起来组成一个强模型,强模型的性能要比单个弱模型好很多(三个臭皮匠顶一个诸葛亮。注意:这里的弱和强是相对的),其中的弱模型可以是决策树、SVM等模型,在随机森林中,弱模型选用决策树。

在训练阶段,随机森林使用bootstrap采样从输入训练数据集中采集多个不同的子训练数据集来依次训练多个不同决策树;在预测阶段,随机森林将内部多个决策树的预测结果取平均得到最终的结果。本文主要介绍回归随机森林从零实现的过程,实现的RFR(回归随机森林)具有以下功能:

  • 模型训练
  • 模型数据预测
  • 计算feature importance

2.1 模型训练

2.1.1 基础理论

本文实现的RFR是将多个二叉决策树(CART,这也是sklearn,spark内部实现的模型打包组合而成的,训练RFR便是训练多个二叉决策树。在训练二叉决策树模型的时候需要考虑怎样选择切分变量(特征)、切分点以及怎样衡量一个切分变量、切分点的好坏。针对于切分变量和切分点的选择,本实现采用穷举法,即遍历每个特征和每个特征的所有取值,最后从中找出最好的切分变量和切分点;针对于切分变量和切分点的好坏,一般以切分后节点的不纯度来衡量,即各个子节点不纯度的加权和

,其计算公式如下:

(2-1)

其中,

为某一个切分变量,
为切分变量的一个切分值,
分别为切分后左子节点的训练样本个数、右子节点的训练样本个数以及当前节点所有训练样本个数,
分为左右子节点的训练样本集合,
为衡量节点不纯度的函数(impurity function/criterion),分类和回归任务一般采用不同的不纯度函数,在分类和回归常采用的不纯度函数有以下四种:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/131422
推荐阅读
相关标签
  

闽ICP备14008679号