一、作品详细简介
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.如果不会运行,可以帮忙远程运行原始程序以及讲解和其它售后。

1万+

被折叠的 条评论
为什么被折叠?



