《随机森林》

发布时间:2026/10/23 4:43:55

《随机森林》 随机森林随机森林就是训练很多棵不同的决策树然后让它们投票决定最终结果。从何而来决策树很强大但有一个致命缺点容易过拟合。一棵树如果长得太深就会把噪声也学进去。为了克服这个缺点人们想了一个办法训练很多棵树每棵树用的数据略有不同每棵树用不同的特征子集这样单棵树可能会犯错但整个森林的投票结果会更稳定、更准确。代码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} 棵树投了反对票叛徒)随机森林分类判断客户会不会流失、图片属于哪一类回归预测房价、销量。它的优点准确率高、不容易过拟合、能处理大量特征、能评估特征重要性
延伸阅读

更多相关文章

2026/10/23 4:43:55

Hadoop Spark 数据倾斜完整排查

一、倾斜现象识别1. Spark UI 页面(最核心)Stage 页面看 Task 列表:同一个 Stage 下,绝大部分 task 几秒跑完,数据量几十 MB;少数几个 task 跑几十分钟,shuffle read 达到 GB 级别,进…

2026/10/23 5:44:01

Nero 2025蓝光归档实战:Win11刻录配置与长期保存避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:44:01

嵌入式老兵转型指南:Linux+端侧AI部署才是高价值赛道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:44:01

WinPE 10重装Win10全流程:启动、分区与UEFI引导修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:44:01

爬虫Web基础:请求头、响应头、HTTP/HTTPS与状态码全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:44:01

Ubuntu双机远程桌面实战:Wayland黑屏排查与无人值守配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:39:00

RC电路暂态过程Simulink仿真:从建模到波形分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑