禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!
- R语言机器学习算法实战系列(一)XGBoost算法+SHAP值(eXtreme Gradient Boosting)
- R语言机器学习算法实战系列(二) SVM算法+重要性得分(Support Vector Machine)
- R语言机器学习算法实战系列(三)lightGBM算法+SHAP值(Light Gradient Boosting Machine)
- R语言机器学习算法实战系列(四)随机森林算法+SHAP值 (Random Forest)
- R语言机器学习算法实战系列(五)GBM算法+SHAP值 (Gradient Boosting Machines)
- R语言机器学习算法实战系列(六)K-邻近算法 (K-Nearest Neighbors)
- R语言机器学习算法实战系列(七)朴素贝叶斯分类算法 (Naïve Bayes Classifier)
- R语言机器学习算法实战系列(八)逻辑回归算法 (logistic regression)
- R语言机器学习算法实战系列(九)决策树分类算法 (Decision Trees Classifier)
- R语言机器学习算法实战系列(十)自适应提升分类算法 (Adaptive Boosting)
- R语言机器学习算法实战系列(十一)MLP分类算法 (Multi-Layer Perceptrons)
- R语言机器学习算法实战系列(十二)线性判别分析分类算法 (Linear Discriminant Analysis)
- R语言机器学习算法实战系列(十三)随机森林生存分析构建预后模型 (Random Survival Forest)
- R语言机器学习算法实战系列(十四): CatBoost分类算法+SHAP值 (categorical data gradient boosting)
- R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)
- R语言机器学习算法实战系列(十六)随机森林算法回归模型+SHAP值(Random Forest Regression + SHAP)
- R语言机器学习算法实战系列(十七)特征选择之弹性网络回归算法(Elastic Net Regression)
- R语言机器学习算法实战系列(十八)特征选择之LASSO算法(Least Absolute Shrinkage and Selection Operator Regression)
- R语言机器学习算法实战系列(十九)特征选择之Monte Carlo算法(Monte Carlo Feature Selection)
- R语言机器学习算法实战系列(二十)特征选择之Boruta算法
机器学习论文
- R语言机器学习论文(一):研究背景
- R语言机器学习论文(二):数据准备
- R语言机器学习论文(三):特征提取
- R语言机器学习论文(四):模型构建
- R语言机器学习论文(五):解释模型
- R语言机器学习论文(六):总结
image.png
介绍
随机森林算法回归模型是一种集成学习方法,用于解决回归问题,即预测连续的数值型响应变量。它通过构建多个决策树并结合它们的预测结果来提高模型的准确性和鲁棒性。
原理
- 集成学习:随机森林是一种集成学习方法,它通过构建多个决策树并将它们的预测结果结合起来,以减少单一决策树的方差,提高模型的泛化能力。
- 自助采样(Bootstrap Aggregating):随机森林中的每棵树都是在原始数据集的一个随机子样本上训练得到的,这个子样本是通过有放回的抽样(即自助采样)得到的。
- 随机特征选择:在每棵树的每个分裂节点,随机森林不是考虑所有的特征,而是随机选择一部分特征,然后从中选择最佳分裂特征。这增加了树之间的多样性,减少了它们之间的相关性。
- 平均预测:对于回归问题,随机森林通过取所有决策树预测结果的平均值作为最终预测。
步骤
- 初始化参数:设置随机森林的参数,包括树的数量、每个节点分裂时考虑的特征数(mtry)、以及是否进行交叉验证等。
-
构建决策树:
- 对于每棵树: a. 从原始数据集中使用自助采样得到一个子样本。 b. 在这个子样本上,对于每个分裂节点,随机选择mtry个特征。 c. 选择最佳分裂特征和分裂点以最小化节点的不纯度(对于回归树通常是最小化均方误差)。 d. 递归地分裂节点,直到满足停止条件(如节点中的数据量小于某个阈值,或树达到最大深度)。
- 聚合预测:对于回归问题,对于每个数据点,所有树上的预测结果被聚合(通常是取平均值)以得到最终的预测结果。
- 特征重要性评估:通过观察每个特征在所有树上对减少不纯度的贡献来评估特征的重要性。
- 模型优化:使用交叉验证等方法调整模型参数,以避免过拟合和欠拟合,并优化模型性能。
- 模型预测:使用训练好的随机森林模型对新数据进行预测。
回归和分类的异同
机器学习中的回归和分类是两种不同的预测模型,它们的主要区别在于预测的目标和输出结果的类型:
特征 | 回归 (Regression) | 分类 (Classification) |
---|---|---|
目标 | 预测连续的数值型数据 | 预测离散的类别标签 |
输出结果 | 连续数值(如房价、温度) | 离散类别(如垃圾邮件/非垃圾邮件) |
损失函数 | 均方误差(MSE)、平均绝对误差(MAE)等 | 交叉熵损失(Cross-Entropy Loss)等 |
评估指标 | 均方误差(MSE)、平均绝对误差(MAE)、R平方值(R²)等 | 准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数(F1 Score)等 |
模型选择 | 线性回归、多项式回归、决策树回归、随机森林回归、支持向量回归(SVR)等 | 逻辑回归、决策树分类、随机森林分类、支持向量机(SVM)、神经网络等 |
应用场景 | 股价预测、温度预测、销售额预测等 | 图像识别、文本分类、疾病诊断等 |
教程
本文旨在通过R语言实现random forest,总共包含:
- 下载数据
- 加载R包
- 数据预处理
- 数据切割
- 特征选择
- 设置参数
- 构建模型
- 预测测试数据
- 评估模型
- 特征的重要性
- 模型SHAP值解释
- 保存模型
- 总结
- 系统信息
加载R包
导入所需要的R包,在导入前需要用户自己安装。
library(tidyverse)
library(data.table)
library(randomForest)
library(caret)
library(pROC)
library(ggpubr)
library(ggcorrplot)
library(corrplot)
library(ggforce)
library(MLmetrics)
library(patchwork)
library(cowplot)
library(Metrics)
library(scales)
library(ggpmisc)
# rm(list = ls())
options(stringsAsFactors = F)
options(future.globals.maxSize = 1000 * 1024^2)
导入数据
- 该数据集包含1000颗钻石的信息。它包含价格以及其他9个属性
datset <- data.table::fread("./data/diamond.csv")
head(datset)
预测测试数据
image.png
更多内容请前往
image.png