首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
《随机森林》
📅 2026/10/23 4:43:57
✍️ 爱科研究院
👁 阅读 3,247
随机森林随机森林就是训练很多棵不同的决策树然后让它们投票决定最终结果。从何而来决策树很强大但有一个致命缺点容易过拟合。一棵树如果长得太深就会把噪声也学进去。为了克服这个缺点人们想了一个办法训练很多棵树每棵树用的数据略有不同每棵树用不同的特征子集这样单棵树可能会犯错但整个森林的投票结果会更稳定、更准确。代码import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom collections import Counter 1. 准备数据 加载鸢尾花数据集iris load_iris()X iris.datay iris.target划分训练集和测试集X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42) 2. 训练随机森林 创建包含 100 棵树的随机森林forest_model RandomForestClassifier(n_estimators100, # 100棵树max_depth5,random_state42)训练模型forest_model.fit(X_train, y_train)预测并评估准确率forest_pred forest_model.predict(X_test)forest_acc accuracy_score(y_test, forest_pred)print(f随机森林在测试集上的准确率{forest_acc:.3f}\n) 3. 画出特征重要性 importances forest_model.feature_importances_plt.figure(figsize(8, 5))plt.barh(iris.feature_names, importances)plt.xlabel(‘特征重要性’)plt.title(‘随机森林哪些特征更重要’)plt.grid(True)plt.show() 4. 终极透视100棵树的投票过程 1. 挑出测试集的第 1 个样本一朵花sample_index 0single_X X_test[sample_index].reshape(1, -1) # 取出这 1 朵花true_label y_test[sample_index] # 它的真实品种2. 【核心大招】让森林里的 100 棵树各自对这朵花进行预测estimators_ 里面才真正装着那 100 棵独立的树all_votes [tree.predict(single_X)[0] for tree in forest_model.estimators_]3. 统计这 100 棵树的票数vote_counts Counter(int(v) for v in all_votes)print(f真实品种: {iris.target_names[true_label]}“)print(f100棵树的投票明细: {dict(vote_counts)}”)4. 找出得票最多的冠军winner vote_counts.most_common(1)[0][0]print(f最终获胜结果: {iris.target_names[winner]})5. 看看有没有“叛徒”投错票的树wrong_votes sum(1 for v in all_votes if v ! winner)print(f100棵树中有 {wrong_votes} 棵树投了反对票叛徒)随机森林分类判断客户会不会流失、图片属于哪一类回归预测房价、销量。它的优点准确率高、不容易过拟合、能处理大量特征、能评估特征重要性
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/23 4:43:57
FactoryBluePrints 戴森球计划蓝图仓库:7000+ 蓝图从前期开荒到 2.8T 锅盖的完整使用路径
2026/10/23 4:43:57
Hadoop Spark 数据倾斜完整排查
2026/10/23 4:38:56
基于Django的足球世界杯行为分析与可视化:技术栈、背景意义与核心要点
2026/10/23 5:49:01
Ventoy制作Ubuntu启动盘:适配ThinkPad X1E隐士的UEFI多系统引导方案
2026/10/23 5:49:01
GitLab SSH密钥配置全流程:生成、验证、多账号与排错指南
2026/10/23 5:49:01
JMA/NIED高精度地震时序数据建模实战指南
2026/10/23 5:49:01
自动驾驶候选路径生成:端到端轨迹预测失效与混合架构落地
2026/10/23 5:49:01
AI短剧制作全流程:角色一致性、分镜表与产能控制
2026/10/23 5:44:01
Nero 2025蓝光归档实战:Win11刻录配置与长期保存避坑指南
2026/10/23 0:02:44
Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战
2026/10/23 0:02:44
数据服务监控运维实战:从指标体系到告警治理与故障排查
2026/10/23 0:02:44
FreeRTOS任务通知实战详解:内核原理、API与避坑指南
2026/10/23 0:52:23
OpenResearch实战:Claude Code、Codex、OpenCode、Cursor 工作流搭建与故障排查
2026/10/22 17:15:21
知识管理核弹:用Obsidian构建第二大脑的工程化方案(TaoToken 统一 Key 接入版)
2026/10/23 0:52:11
金融AI落地指南:从调研报告到技术选型与工程实践
2026/10/22 5:06:15
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/22 2:07:18
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/21 19:01:08
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)