随机森林回归预测_jupyter notebook

article/2025/10/2 17:19:53

改编自https://www.bilibili.com/video/BV1iJ41127cw?spm_id_from=333.337.search-card.all.click提供的代码。下文为改动之后的代码:

import numpy as np
import pandas as pdfrom sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

导入数据,按9:1划分训练、测试集,随机数定为42(任意)

sediment=pd.read_csv('E:/Resource/Develop/notebook/random_forest.csv')
X=sediment.drop(["S"],axis=1)
y=sediment["S"]
x_train,x_test,y_train,y_test=train_test_split(X,y,random_state=42,test_size=0.1)

优化参数:遍历字典中的参数取值。字典可以根据得到的结果继续更新,缩小上次的字典范围;字典中的数值根据自己的数据特点确定。

#导入随机森林模块
from sklearn.ensemble import RandomForestRegressor
#导入网络搜索交叉验证,网络搜索可以让模型参数按照我们给定的列表遍历,找到效果最好的模型
#交叉验证可以告诉我们模型的准确性
from sklearn.model_selection import GridSearchCV
#构造参数字典,让这三个参数按照列表给定的顺序排列组合遍历一遍
param_grid={'n_estimators':range(5,150,5),#决策树的个数'max_depth':[3,4,5,6,7,8,9],#最大树深,树太深会造成过拟合'max_features':[0.3,0.4,0.6,1,2,3]#决策树划分时考虑的最大特征数
}
#实例化随机森林回归器
rf=RandomForestRegressor(random_state=42)
#一随机森林回归器为基础构造网络搜索回归器
grid=GridSearchCV(rf,param_grid=param_grid,cv=10)#十则交叉验证grid.fit(x_train,y_train)

查看最优参数结果(这一“最优”参数是基于两次random_state=42得到的,一次是随机选取的训练测试集,另一次是随机森林模型当中建模的随机路径,42(或其他任意数字代表某一种随机过程,帮助我们复现该次随机的结果。只要我们下回还用2次random_state=42,就能得到和这回同样的结果)

#查看效果最好的模型
grid.best_params_
#制定效果最好参数对应的模型
rf_reg=grid.best_estimator_
rf_reg

得到模型之后分析参数重要性

#特征重要度分析
rf_reg.feature_importances_
print('特征排序:')
feature_names=X.columns
feature_importances=rf_reg.feature_importances_
indices=np.argsort(feature_importances)for index in indices:print('feature %s (%f)' %(feature_names[index],feature_importances[index]))

参数重要性排序作图

plt.figure(figsize=(7,5))
plt.title('随机森林模型中不同特征的重要程度')
plt.bar(range(len(feature_importances)),feature_importances[indices],color='b')
plt.xticks(range(len(feature_importances)),np.array(feature_names)[indices],color='b')
plt.show()
#可视化测试集上回归预测的结果
result={"labels":y_test,"prediction":rf_reg.predict(x_test)}
result=pd.DataFrame(result)

输出测试集的真实值(labels)和预测值(prediction)

print(result)

根据抽样序号在图中展现真实值和预测值结果(见下面的例图)

result['labels'].plot(style='k.',figsize=(15,5))
result['prediction'].plot(style='r.')
plt.legend(fontsize=15,markerscale=3)#设置图例字号以及图例大小
plt.tick_params(labelsize=15)#设置坐标数字大小
plt.grid()

在这里插入图片描述
评估该随机森林回归模型的好坏

#计算测试集的均方误差和均方根误差
from sklearn import metrics
MSE=metrics.mean_squared_error(y_test,rf_reg.predict(x_test))
RMSE=np.sqrt(MSE)
print('(MSE,RMSE)=',(MSE,RMSE))
#计算测试集的R方
from sklearn.metrics import r2_score
print('The value of R-squared of LinearRegression is', r2_score(y_test,rf_reg.predict(x_test)))

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

相关文章

Python实现Stacking回归模型(随机森林回归、极端随机树回归、AdaBoost回归、GBDT回归、决策树回归)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 Stacking通常考虑的是异质弱学习器(不同的学习算法被组合在一起),st…

Matlab TreeBagger随机森林回归实例

简介 在探寻变量之间相关性时,简单线性相关容易实现,对于多元的非线性关系,如果不知道关系式(函数方程)很难建立自变量和因变量之间关系。而机器学习方法为解决这类复杂多元非线性问题提供了很好的思路。 其中&#x…

随机森林分类+随机森林回归+实例:用随机森林回归填补缺失值+机器学习调参思想+实例:随机森林在乳腺癌数据上的调参

文章目录 一、集成算法概述二、重要参数1、控制基评估器的参数2、n_estimators3、random_state4、bootstrap & oob_score 三、重要属性和接口四、随机森林回归器1、重要参数,属性与接口2、实例:用随机森林回归填补缺失值 五、机器学习中调参的基本思…

采用支持向量回归(SVR)和随机森林回归预测两种机器学习方法对房价进行预测(附完整代码)

大家好,我是带我去滑雪,每天教你一个小技巧! 本文分别采用支持向量回归(SVR)和随机森林回归预测两种机器学习方法对房价进行预测。随机将数据分为训练集和测试集,比例为8:2,数据和代码均在文末…

python随机森林回归数据实战

文章目录 前言一、随机森林回归器参数介绍二、数据实战1.数据介绍2.重点代码2.1特征集和标签集获取2.2数据集划分2.3随机森林模型训练2.4预测结果可视化2.5 特征重要性选择及可视化 3.完整代码 总结 前言 我为什么写这篇博客? 答:记录一下自己对于sklea…

随机森林回归实验

随机森林回归实验 文章目录 随机森林回归实验实验说明实验步骤可视化 实验说明 sklearn包里已经实现了随机森林回归模型,导入使用即可。 数据集我们使用的是 sklearn包中自带的波士顿房价数据集。 实验环境:Anaconda3VScodePython版本:3.7…

随机森林回归算法的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 ,就会有清除缓存的选项,如下图