机器学习-随机森林解析

目录

一、.随机森林的思想

二、随机森林构建步骤

1.自助采样

2.特征随机选择

3构建决策树

4.集成预测

[三. 随机森林的关键优势](#三. 随机森林的关键优势)

[​**(1) 减少过拟合**](#(1) 减少过拟合)

[​**(2) 高效并行化**](#(2) 高效并行化)

[​**(3) 特征重要性评估**](#(3) 特征重要性评估)

[​**(4) 耐抗噪声**](#(4) 耐抗噪声)

[四. 随机森林的优缺点](#四. 随机森林的优缺点)

​优点

​缺点

[五. 参数调优(以scikit-learn为例)​](#五. 参数调优(以scikit-learn为例))

波士顿房价预测


一、.随机森林的思想

1.通过组成多个弱学习器(决策树)形成一个学习器

2.多样性增强:每颗决策树通过特征随机选择和样本随机抽样生成,降低模型之间的相关性,减少过拟合风险

二、随机森林构建步骤

1.自助采样

从原始数据集中有放回的随机抽样(每个子集大小等于原始数据集)。

大约30%的数据未被抽中,形成"袋外样本"(Out-of-Bag, OOB),用于模型评估。

2.特征随机选择

每棵决策树在构建时,仅从所有特征中随机选择一个子集(例如,对于分类任务,通常选择 m=sqrt(n_feature) 个特征)

增加特征间的独立性,避免模型偏向特定特征

3构建决策树

对每个子集和特征组合,递归地生成决策树(使用与单棵决策树相同的算法,如CART)。

不进行剪枝(Pre-pruning),允许树完全生长。

4.集成预测

分类任务:所有树的预测结果按多数票决定最终类别

回归任务:所有树的预测结果取平均值

三. 随机森林的关键优势

​**(1) 减少过拟合**
  • 单棵决策树易过拟合,但多棵树的"平均效应"降低了方差。
  • 无需复杂的剪枝操作。
​**(2) 高效并行化**
  • 树之间相互独立,可通过并行计算加速训练。
​**(3) 特征重要性评估**
  • 通过统计每棵树中特征被选中的频率,量化其对最终预测的贡献度。
​**(4) 耐抗噪声**
  • 对缺失值和异常值不敏感(需适当处理缺失值)。

四. 随机森林的优缺点

​优点
  • 高准确率:在大多数任务中表现优于单个决策树。
  • 可解释性:可通过特征重要性分析和可视化部分树结构。
  • 适应性强:支持分类、回归、特征选择等多种任务。
​缺点
  • 计算资源消耗大:生成大量树需要更多内存和计算时间。
  • 对高维稀疏数据效果不佳:特征随机选择可能无法覆盖关键特征。
  • 黑箱化风险:相比单棵决策树,集成模型的解释性略低。

五. 参数调优(以scikit-learn为例)​

参数 作用 默认值
n_estimators 树的数量 100
max_depth 树的最大深度 None(不限制)
min_samples_split 内部节点最少分割样本数 2
max_features 每棵树使用的特征数量 auto(分类任务为√n)
bootstrap 是否使用自助采样 True

波士顿房价预测

python 复制代码
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston

# 加载数据
boston = load_boston()
X, y = boston.data, boston.target

# 创建随机森林回归模型
model = RandomForestRegressor(n_estimators=100, random_state=42)

# 训练模型
model.fit(X, y)

# 预测均值绝对误差(MAE)
y_pred = model.predict(X)
print(f"Mean Absolute Error: {np.mean(np.abs(y - y_pred)):.2f}")
相关推荐
在所不辞兄20 分钟前
【零基础学智能仿真-67】力学知识库与检索增强
人工智能·深度学习·神经网络·机器学习·智能仿真
云上先途23 分钟前
下一代搜索优化重点优化哪些维度,和旧SEO思路有什么不同?
人工智能
楚山之石24 分钟前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
海宇大数据1 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化
hkNaruto1 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒1 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
ZhengEnCi1 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶
人工智能·算法·llm
vilya2 小时前
Agent 语音引擎换心记:从「够用」到「稳且好」
人工智能·agent
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
70后写java的老码农2 小时前
Ollama 大模型私有化部署与彻底卸载指南(Windows/Linux)
人工智能