基于RF随机森林机器学习算法的回归预测模型-Python版本

一、作品详细简介

1.1附件文件夹程序代码截图

 全部完整源代码,请在个人首页置顶文章查看:

学行库小秘_CSDN博客https://blog.csdn.net/weixin_47760707?spm=1000.2115.3001.5343

1.2各文件夹说明

1.2.1 数据集文件

       数据集为Excel数据csv格式文件,可以方便地直接替换为自己的数据运行程序。原始数据文件包含7列特征列数据和1列输出标签列数据,一共包含103条样本数据,具体如图所示。

1.2.2 代码各部分功能简介

       该代码基于RF随机森林机器学习算法的回归预测模型(Python版)主要包括以下功能:导入必要的库,读取数据,数据信息查看,特征名称获取,数据转换为numpy数组并转换数据类型,划分特征和标签,划分训练集和测试集,特征归一化,随机森林模型训练,预测,定义评估指标函数并输出,特征重要性分析及可视化,训练集和测试集预测结果对比图(折线图),训练集和测试集预测结果对比图(散点图)。

1 源代码.ipynb文件中部分代码展示

下面详细说明各部分功能:

1. 导入库:

- numpy: 数值计算

- pandas: 数据处理

- matplotlib: 绘图

- warnings: 处理警告

- sklearn: 机器学习库,这里使用了数据分割、随机森林回归、数据预处理、评估指标等模块

`warnings.filterwarnings("ignore")` 避免一些不必要的警告信息干扰输出。

2. 读取数据:

- 使用pandas的read_csv读取CSV文件,指定编码为GBK(常见于中文环境)。这里读取了两次,第一次是为了查看,第二次是正式读取。

3. 数据信息查看:`data.info()` 用于查看数据的基本信息,如每列的非空值数量、数据类型等。

4. 特征名称获取:

- 从DataFrame的列名中获取特征名称,这里假设前7列为特征列(索引0到6),并存储在`features`列表中。

5. 数据转换为numpy数组并转换数据类型:

- `data.iloc[:, :].values` 将整个DataFrame转换为numpy数组。

- `astype(float)` 将数组中的元素转换为浮点型,确保后续计算。

6. 划分特征和标签:

- `x = data[:, 0:7]` 取前7列作为特征。

- `y = data[:, 7]` 取第8列(索引为7)作为目标变量。

7. 划分训练集和测试集:

- `train_test_split` 将数据按70%训练集,30%测试集划分,并设置`random_state=0`确保可复现。

8. 特征归一化:

- 使用`MinMaxScaler`对特征进行归一化(将每个特征缩放到0-1之间)。

- 注意:只在训练集上拟合归一化参数,然后对训练集和测试集分别转换。

9. 随机森林模型训练:

- 创建`RandomForestRegressor`对象,设置`n_estimators=1000`(即1000棵树)。

- 使用归一化后的训练集特征`X_train_scaled`和对应的标签`y_train`进行训练。

10. 预测:

- 分别对训练集和测试集进行预测,得到预测值`y_train_pred`和`y_test_pred`。

11. 定义评估指标函数并输出:

- 定义`print_metrics`函数,计算并打印MSE、RMSE、MAE、MBE(平均偏差误差)和R²。

- 分别对训练集和测试集调用该函数输出评估结果。

12. 特征重要性分析及可视化:

- 从训练好的随机森林模型中获取`feature_importances_`(特征重要性得分)。

- 将特征按重要性从高到低排序,并绘制水平条形图。

13. 训练集和测试集预测结果对比图(折线图):

- 分别绘制训练集和测试集的真实值与预测值的折线图,以便直观对比。

14. 训练集和测试集预测结果对比图(散点图):

- 分别绘制训练集和测试集的真实值-预测值散点图,并添加45度参考线(即理想预测线)。

- 同时在标题中显示R²分数。

       注意:代码中多次设置中文字体(SimHei)和解决负号显示问题,确保图表中能正确显示中文和负号。

        总结:该代码实现了从数据读取、预处理、模型训练、评估到结果可视化的完整流程,使用随机森林回归模型进行预测,并对模型结果进行了多方面的评估和可视化展示。

二、代码运行结果展示

       这段代码基于RF随机森林机器学习算法的回归预测模型(Python版),采用Python语言实现了一个完整的随机森林回归预测流程:首先加载CSV格式的数据集(包含7个特征列和1个目标列),进行数据预处理(包括类型转换、特征提取和归一化);然后将数据分割为训练集和测试集;接着使用1000棵决策树构建随机森林回归模型进行训练和预测;最后通过多种评估指标(MSE、RMSE、MAE、MBE、R²)量化模型性能,并可视化展示特征重要性排序、预测值与真实值的对比折线图以及带45度参考线的预测散点图,全面评估模型在训练集和测试集上的表现。

       具体结果如下图所示,包括特征重要性,训练集、测试集的预测值和真实值的预测结果对比图折线图+散点图等。

三、注意事项:

1.程序为Python版本代码,可直接运行.py源代码文件,也可以直接在Jupyter notebook中运行.ipynb文件(推荐);

2.程序运行前需要安装有numpy、pandas、matplotlib、sklearn等库;

3.所有程序都经过验证,保证程序可以运行。此外程序包含详细注释,便于理解。

4.Excel数据,可直接修改数据,替换数据后直接运行即可。

5.如果不会运行,可以帮忙远程运行原始程序以及讲解和其它售后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值