随机森林回归实验

article/2025/10/3 4:24:57

随机森林回归实验

文章目录

  • 随机森林回归实验
    • 实验说明
    • 实验步骤
    • 可视化

实验说明

sklearn包里已经实现了随机森林回归模型,导入使用即可。

数据集我们使用的是 sklearn包中自带的波士顿房价数据集。

  • 实验环境:Anaconda3+VScode
  • Python版本:3.7
  • 需要的第三方库:sklearn、matplotlib、numpy

实验步骤

一个简单的随机森林回归实验同样分为六个步骤:

  1. 加载数据集
  2. 拆分数据集
  3. 创建模型
  4. 在训练集学习得到模型
  5. 模型预测
  6. 模型评测

关于训练集和测试集的划分我们使用的是留出法,最后的结果我们使用四项指标来进行评估:

  • 平均绝对误差
  • 均方误差
  • 解释方差分
  • R2得分

这一步用到的第三方库是 sklearn。

代码如下:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import explained_variance_score
from sklearn.metrics import r2_score
#1.加载数据集
boston_data = load_boston()
# print(boston_data)
#2.拆分数据集
x = boston_data.data
y = boston_data.target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=10);
#3.创建模型
rfr = RandomForestRegressor(random_state=10, max_depth=8)
#4.获取在训练集的模型
rfr.fit(x_train, y_train)
#5.预测结果
rfr_predict = rfr.predict(x_test)
#6.模型评测
mae = mean_absolute_error(y_test, rfr_predict)
mse = mean_squared_error(y_test, rfr_predict)
evs = explained_variance_score(y_test, rfr_predict)
r2 = r2_score(y_test, rfr_predict)
print("平均绝对误差MAE:{}".format(mae))
print("均方误差MSE:{}".format(mse))
print("解释方差分EVS:{}".format(evs))
print("R2得分:{}".format(r2))

可以看到,得到的四项指标为:平均绝对误差为2.78,均方误差为14.24,解释方差分为0.86,R2得分为0.86
m6

可视化

我们将刚才训练的随机森林,借助散点图进行可视化。

这一步需要的第三方库是 sklearn、matplotlib、numpy。

代码如下:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import explained_variance_score
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
#1.加载数据集
boston_data = load_boston()
# print(boston_data)
#2.拆分数据集
x = boston_data.data
y = boston_data.target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=10)
#3.创建模型
rfr = RandomForestRegressor(random_state=10, max_depth=8)
#4.获取在训练集的模型
rfr.fit(x_train, y_train)
#5.预测结果
rfr_predict = rfr.predict(x_test)
#6.模型评测
mae = mean_absolute_error(y_test, rfr_predict)
mse = mean_squared_error(y_test, rfr_predict)
evs = explained_variance_score(y_test, rfr_predict)
r2 = r2_score(y_test, rfr_predict)
print("平均绝对误差MAE:{}".format(mae))
print("均方误差MSE:{}".format(mse))
print("解释方差分EVS:{}".format(evs))
print("R2得分:{}".format(r2))
# 设置散点颜色
point_color = ListedColormap(['#FF0000', '#00FF00'])
# 设置坐标轴
y_min, y_max = y_test.min()-1,y_test.max()+1
xx = np.arange(0,102,1)
yy = y_test
yy.sort()
z = rfr_predict
z.sort()
# print(xx.shape)
# print(yy.shape)
# print(z.shape)# 创建图片
plt.figure()
plt.scatter(xx, yy, cmap=point_color, edgecolors='black')
plt.scatter(xx, z, cmap=point_color, edgecolors='black')
# 绘制刻度
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
# 设置标题
plt.title("RandomForestRegressor")
# 展示图表
plt.grid(True)
plt.show()

散点图展示:
m7

可以看到,散点的分布位置贴合较近,模型训练得还不错。


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

相关文章

随机森林回归算法的Python实现与应用

摘要 随机森林回归是一种集成学习算法,通过组合多个决策树来实现回归任务,构建多个决策树,并将它们组合成一个强大的回归模型。本文将会从随机森林回归算法的算法原理、Python实现及实际应用进行详细说明。 1 绪论 在现在的数据分析及数学建…

随机森林回归算法

随机森林回归算法原理 随机森林回归模型由多棵回归树构成,且森林中的每一棵决策树之间没有关联,模型的最终输出由森林中的每一棵决策树共同决定。 随机森林的随机性体现在两个方面: 1、样本的随机性,从训练集中随机抽取一定数量的…

随机森林回归器

文章目录 前言一、重要参数criterion 二、重要属性和接口三、随机森林回归用法总结 前言 所有的参数,属性与接口,全部和随机森林分类器一致。仅有的不同就是回归树与分类树的不同,不纯度的指标,参数Criterion不一致。 一、重要参…

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

集成算法 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;…