随机森林回归器

article/2025/10/2 14:50:02

文章目录

  • 前言
  • 一、重要参数
    • criterion
  • 二、重要属性和接口
  • 三、随机森林回归用法
  • 总结


前言

所有的参数,属性与接口,全部和随机森林分类器一致。仅有的不同就是回归树与分类树的不同,不纯度的指标,参数Criterion不一致。


一、重要参数

criterion

回归树衡量分支质量的指标,支持标准有三种:

  1. 输入"mse"使用均方误差mean squared error(MSE),父节点和叶子节点之间的均方误差的差额将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失

  2. 输入“friedman_mse”使用费尔德曼均方误差,这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差

  3. 输入"mae"使用绝对平均误差MAE(mean absolute error),这种指标使用叶节点的中值来最小化L1损失

    MSE公式

    M S E = 1 N ∑ i = 1 N ( f i − y i ) 2 MSE=\frac{1}{N} \sum_{i=1}^{N} (f_i-y_i)^2 MSE=N1i=1N(fiyi)2

    • N:样本数量
    • i:每一个数据样本
    • f i f_i fi:模型回归出的数值
    • y i y_i yi:样本点i实际的数值标签

    MSE的本质样本真实数据与回归结果的差异

在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡量回归树回归质量的指标。

当我们在使用交叉验证,或者其他方式获取回归树的结果时,我们往往选择均方误差作为我们的评估(在分类树中这个指标是score代表的预测准确率)

在回归中,我们追求的是,MSE越小越好。然而,回归树的接口score返回的默认R平方(R方越接近1越好),并不是MSE在使用时可以规定使用MES还是R平方,但是我们通常不使用R平方R平方被定义如下:
R 2 = 1 − u v R^2=1-\frac{u}{v} R2=1vu
u = ∑ i = 1 N ( f i − y i ) 2 u=\sum_{i=1}^{N} (f_i-y_i)^2 u=i=1N(fiyi)2
v = ∑ i = 1 N ( y i − y ˉ ) 2 v=\sum_{i=1}^{N}(y_i-\bar{y})^2 v=i=1N(yiyˉ)2

  • u:残差平方和(MSE * N)

  • v:总平方和

  • N:样本数量

  • i:每一个数据样本

  • f i f_i fi:模型回归出的数值

  • y i y_i yi:样本点i实际的数值标签

  • y ˉ \bar{y} yˉ:真实数值标签的平均数

    R平方可以为正为负(如果模型的残差平方和远远大于模型的总平方和,模型非常糟糕,R平方就会为负),而均方误差永远为正。

虽然均方误差永远为正,但是sklearn当中使用均方误差作为评判标准时,却是计算负均方误差(neg_mean_squared_error),这是因为sklearn在计算模型评估指标的时候,会考虑指标本身的性质,均方误差本身是一种误差,所以被sklearn划分为模型的一种损失(loss),因此在sklearn当中,都以负数表示真正的均方误差MSE的数值,其实就是neg_mean_squared_error去掉负号的数字。


二、重要属性和接口

都与随机森林分类器一致,不过并没有predict_proba这个接口,因为对于回归来说并不存在一个样本要被分到某个类别的概率问题,因此没有predict_proba这个接口。

  • fit
  • apply
  • predict
  • score

重要属性及接口详细看随机森林分类器


三、随机森林回归用法

同决策树一样,只不过多了一个n_estimators参数

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestRegressor
boston = load_boston()
regressor = RandomForestRegressor(n_estimators=100,random_state=0)
cross_val_score(regressor, boston.data, boston.target, cv=10,scoring = "neg_mean_squared_error")
  • 注意
    返回十次交叉验证的结果,注意在这里,如果不填写scoring = “neg_mean_squared_error”,交叉验证默认的模型衡量指标是R平方,因此交叉验证的结果可能有正也可能有负。而如果写上scoring,则衡量标准是负MSE,交叉验证的结果只可能为负。

  • 如果不知道scoring应该选什么参数,可以通过下面方法来查询参数

sorted(sklearn.metrics.SCORERS.keys())

在这里插入图片描述


总结

回归森林回归器同回归森林分类器的属性参数等基本相同,随机森林分类器,交叉验证在决策树的回归树,链接在下
随机森林分类器
回归树


http://chatgpt.dhexx.cn/article/kwqjRQ5j.shtml

相关文章

随机森林分类、回归算法原理及调参实战

集成算法 ensemble 通过在数据集上构建多个模型,集成所有模型的建模结果,得到一个综合的结果,以此来获得比单个 模型更好的分类或回归表现装袋法bagging:构建多个相互独立的基评估器(base estimator),然后…

LESSON 9.1 随机森林回归器的实现

目录 三 随机森林RandomForest   1 RamdomForestRegressor的实现   2 随机森林回归器的参数    2.1 弱分类器结构    2.2 弱分类器数量    2.3 弱分类器训练的数据    2.4 其他参数 四 增量学习:随机森林处理巨量数据   1 普通学习vs增量学习   2 增量学…

随机森林简单回归预测

随机森林(RandomForest)简单回归预测 随机森林是bagging方法的一种具体实现。它会训练多棵决策树,然后将这些结果融合在一起就是最终的结果。随机森林可以用于分裂,也可以用于回归。主要在于决策树类型的选取,根据具体…

【机器学习项目实战】随机森林(random forest)回归(RandomForestRegressor)模型Python实现

说明:这是一个机器学习实战项目(附带数据代码),如需数据完整代码可以直接到文章最后获取。 1.定义问题 在电子商务领域,现在越来越多的基于历史采购数据、订单数据等,进行销量的预测;本模型也是…

用Python实现随机森林回归

1 介绍 使用Scikit-Learn模块在Python实现任何机器学习算法都比较简单,并且不需要了解所有细节。这里就对如何进行随机森林回归在算法上进行概述,在参数上进行详述。希望对你的工作有所帮助。 这里,将介绍如何在Python中构建和使用Random Fo…

DS和[address]

8086CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元,则一个字要用两个地址连续的内存单元来存放,这个字的低位存放低地址单元中,高位字节存…

a's'da's'd

1:原理ffmpeg读取出来一个包如果是视频包放入视频包队列,如果是音频包放入音频包队列。视频:从视频队列中取出一个包解码根绝帧率或pts等等算出一帧数据的持续时间将这一帧数据放入VideoPicture这个结构体的bmp中,这只是内存,还未…

微信公众号内置浏览器缓存清理

微信公众号的H5页面访问后,会缓存js、css等数据,如果更新了脚本文件,前端一段时间内容反复刷新都无法生效。 使用过程中,更新代码但是H5不能及时更新,推荐以下几种方式: 方法一: 微信->“我…

微信浏览器缓存清理

微信其实内嵌了一个QQ浏览器,只是这个浏览器没有菜单界面,看上去无法清理微信内置浏览器的缓存。 方法一: 1、随便打开一个聊天窗口,输入debugx5.qq.com 并发送 2、点击自己发送的地址debugx5.qq.com,打开debug 调试…

Android手机微信内置浏览器缓存怎么清理?

有很多时候我们的网站需要在微信上打开进行测试,一次次的修改不像是浏览器一样可以随时清理缓存,不清理缓存的话这样会对测试运行结果有影响,那如何清理缓存呢? 注意:此功能只能适用于安卓微信 1、专门的清理缓存的网…

微信内置浏览器清理缓存方法(适用于安卓手机)

用微信内置浏览器打开这个网页debugx5.qq.com ,就会有清除缓存的选项,如下图

微信内置浏览器清除缓存、cookie、local storage清除(安卓手机)

项目需要做一个openIdADFS混合模式的登录,开发的时候发现点问题,需要清除cookie和local storage进行修改。 于是稍微研究了一下,安卓手机如何清除缓存、cookie和local storage。 本人使用的手机是华为Mate 20Pro,微信版本8.0.3.…

h5、微信浏览器、微信公众号清理缓存的常用方法

h5浏览器特别是微信公众号存在缓存的问题,让我们在测试、产品、用户面前彻底丢了面子,他们会问。为什么会有缓存?别人的产品可以做到,为什么我们的不可以? 下面提供几种方案可以尝试处理h5浏览器缓存的问题。 一、普…

清除微信浏览器缓存

转载自https://chenhuichao.com/2016/04/07/mobile/wechat-clean-cache/ 在做微信移动页面开发时,若需要清除缓存,对于Android和iOS平台的清除方法如下: iOS iOS的微信浏览器中自带刷新按钮。点击微信右上角的菜单->刷新,&am…

微信公众号开发,清除微信内置浏览器缓存

在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!&#xf…

微信内置浏览器禁止缓存的问题

解决方案1&#xff1a; 调试阶段或者频繁更新的页面加入以下头信息&#xff1a; <meta http-equiv"Cache-Control" content"no-cache, no-store, must-revalidate" /> <meta http-equiv"Pragma" content"no-cache" /> &l…

微信内置浏览器缓存清理及关闭微信默认的X5内核

之前做过很多公众号的项目&#xff0c;项目写完后给客户看项目&#xff0c;客户一而再再而三的修改元素向左挪1px&#xff0c;向右挪2px。改好之后让客户看&#xff0c;客户说我特泽发克&#xff0c;你啥都没有修改&#xff0c;你竟然骗我&#xff01;&#xff01;&#xff01;…

微信内的浏览器缓存清理方法

安卓清除缓存方案&#xff1a; android版微信内置浏览器&#xff08;X5内核&#xff09; 在安卓版微信内打开链接 http://debugx5.qq.com 拉到调试页面的最底端&#xff0c;勾选上所有的缓存项目&#xff0c;点击清除。 苹果清除缓存方案&#xff1a; ios版微信内置浏览器&am…

解决微信浏览器缓存问题

微信浏览器处理缓存方式&#xff1a; 1.头部处理缓存信息。 <meta http-equiv"Cache-Control" content"no-cache, no-store, must-revalidate" /> <meta http-equiv"Pragma" content"no-c…

微信内置浏览器缓存清理

之前做过很多公众号的项目&#xff0c;项目写完后给客户看项目&#xff0c;客户一而再再而三的修改元素向左挪1px&#xff0c;向右挪2px。改好之后让客户看&#xff0c;客户说我特泽发克&#xff0c;你啥都没有修改&#xff0c;你竟然骗我&#xff01;&#xff01;&#xff01;…