发布时间:2026/8/4 4:13:01
随机森林算法详解——基于垃圾邮件分类案例 一、从决策树到随机森林在前面的决策树学习中我们了解到决策树是一种比较直观的分类算法。它通过不断寻找合适的特征对数据进行划分最终得到分类结果。例如垃圾邮件识别问题一封邮件可能包含单词出现次数特殊字符比例大写字母数量链接数量决策树会根据这些特征建立判断规则。但是在实际使用过程中单棵决策树也存在一些问题。例如如果树的深度过大模型可能会把训练数据中的一些特殊情况也学习进去。训练集效果很好准确率98%但是换一批新数据准确率75%这种情况就是过拟合。为了提高模型稳定性机器学习中提出了一种思想不使用一棵树进行判断而是训练多棵树让它们共同决定结果。这就是随机森林。二、随机森林基本思想随机森林Random Forest是一种集成学习方法。简单来说它由很多棵决策树组成。每棵树都会独立进行训练最后通过投票方式确定分类结果。例如预测一封邮件是否为垃圾邮件决策树预测结果树1垃圾邮件树2垃圾邮件树3正常邮件树4垃圾邮件树5正常邮件其中3棵树认为是垃圾邮件。最终结果垃圾邮件相比单棵树多个模型共同判断可以减少偶然因素带来的影响。三、随机森林为什么叫“随机”随机森林中的随机主要体现在两个方面1. 数据随机训练每棵树时并不是直接使用全部数据。而是通过Bootstrap方法随机抽取数据。例如原始数据4600封邮件生成数据集1 → 训练树1 数据集2 → 训练树2 数据集3 → 训练树3由于每棵树看到的数据不同所以最终形成的树结构也不同。2. 特征随机除了数据不同之外每棵树使用的特征也不是完全一样。例如邮件数据共有100个特征。训练第一棵树随机选择50个特征。训练第二棵树重新选择另外50个特征。这样可以避免所有树都关注相同特征提高模型差异性。四、随机森林训练过程随机森林训练主要分为以下几个步骤。第一步随机抽取训练数据通过Bootstrap采样生成多个训练集。例如原始数据 | 数据集A 数据集B 数据集C第二步训练决策树每个数据集训练一棵决策树。例如数据集A → 决策树1 数据集B → 决策树2 数据集C → 决策树3第三步随机选择特征每棵树训练过程中只使用部分特征。这样可以增加不同树之间的差异。第四步综合预测结果分类任务采用多数投票。回归任务采用平均值。五、垃圾邮件分类案例介绍本实验使用spambase.csv数据集完成垃圾邮件分类。目标根据邮件特征判断0正常邮件 1垃圾邮件邮件特征包括单词出现频率字符出现频率大写字母长度特殊符号比例例如垃圾邮件通常包含大量促销词大量链接特殊字符这些特征可以帮助模型进行判断。六、数据读取与划分读取数据df pd.read_csv(spambase.csv)划分特征x df.iloc[:, :-1] y df.iloc[:, -1]其中x表示邮件特征。例如单词频率 字符比例 数字数量y表示类别标签是否垃圾邮件划分训练集和测试集x_train, x_test, y_train, y_test train_test_split( x, y, test_size0.2, random_state100 )数据比例训练集80% 测试集20%训练集用于学习规律。测试集用于验证模型效果。七、随机森林模型建立代码from sklearn.ensemble import RandomForestClassifier rf RandomForestClassifier( n_estimators150, max_features0.5, random_state0 )创建随机森林分类模型。八、随机森林参数分析1.n_estimators表示森林中决策树数量。代码n_estimators150表示建立150棵决策树。树数量增加优点模型更加稳定预测结果波动降低缺点训练时间增加内存占用提高实际应用中需要根据数据规模调整。2.max_features表示每棵树随机选择的特征比例。代码max_features0.5表示每棵树使用50%的特征。例如100个特征每棵树随机选择50个。这样可以提高树之间的差异。3.max_depth控制树的最大深度。如果不限制树可能不断分裂。导致模型复杂度过高容易过拟合。因此需要合理设置深度。九、交叉验证评价模型单次训练测试可能存在偶然性。例如一次划分准确率90%换一次划分准确率85%因此采用交叉验证提高评价可靠性。代码StratifiedKFold( n_splits5 )五折交叉验证过程第一次 第1份测试其余训练 第二次 第2份测试其余训练 ... 第五次 第5份测试其余训练最后计算平均准确率。十、随机森林参数优化随机森林默认参数通常效果不错但是不同数据集适合的参数不同。因此使用GridSearchCV()自动搜索最佳参数。搜索参数n_estimators max_features max_depth例如尝试50棵树 100棵树 150棵树 200棵树然后比较模型效果。最终选择表现最好的组合。十一、模型评价训练完成后使用classification_report()评价模型。主要指标Accuracy表示整体预测正确比例。Precision表示预测为垃圾邮件的邮件中真正垃圾邮件的比例。Recall表示所有垃圾邮件中模型成功检测出来的比例。F1-score综合考虑Precision和Recall。十二、混淆矩阵分析代码cm_plot()混淆矩阵预测正常预测垃圾真实正常TNFP真实垃圾FNTP其中TP正确识别垃圾邮件。TN正确识别正常邮件。FP正常邮件被误判为垃圾邮件。FN垃圾邮件没有检测出来。在垃圾邮件检测中FN通常需要重点关注因为漏掉垃圾邮件会影响用户体验。十三、随机森林特征重要性分析随机森林可以查看不同特征对于预测结果的影响程度。代码rf.feature_importances_例如可能发现特征重要程度关键词频率0.30特殊字符数量0.25链接数量0.18通过特征重要性分析可以了解哪些因素更容易影响邮件分类结果。十四、随机森林优缺点分析优点1.稳定性更高多棵树共同决策可以降低单个模型带来的误差。2.降低过拟合随机数据和随机特征减少模型对训练数据的依赖。3.适合处理大量特征面对高维数据时表现较好。缺点1.解释性较弱单棵决策树可以直接查看规则。但是随机森林包含大量树结构不容易完全解释。2.训练成本较高树数量增加后训练时间和资源消耗都会增加。

相关新闻

2026/8/4 4:13:01

概率论四大收敛性:依分布、依概率、均方与几乎处处收敛详解

1. 概率论收敛性:从直觉到严格定义的旅程在数据分析、机器学习乃至日常的统计推断中,我们经常谈论一个估计量是否“收敛”于真实值。但“收敛”这个词,在概率论和数理统计的严谨世界里,远不止一种含义。新手可能会觉得&#xff0c…

2026/8/4 8:13:14

Flutter三方库鸿蒙适配实战:以annas_archive_api为例

1. 项目背景与核心价值 Flutter开发者最近在跨平台开发中遇到一个关键挑战:如何让现有Flutter生态的三方库无缝适配鸿蒙系统。annas_archive_api作为一个专注于全球影印资源和学术文献检索的Flutter库,其鸿蒙化适配具有典型意义。这个库的核心功能包括&a…

2026/8/4 8:13:14

Kimi K3 开放权重后,我更确定:AI 编程的瓶颈已经不是模型

2.8 万亿参数、原生多模态、百万 Token 上下文、面向长程 Coding——Kimi K3 的权重和技术报告开放后,很多开发者的第一反应是:终于可以换一个更强的模型了。 但如果你已经做过一次真实的 AI 项目,可能会有另一个更扎心的判断:模型…

2026/8/4 8:13:14

QCustomPlot使用例子

背景: 处理海量波形数据(如录波分析)时,核心痛点在于“文件读取慢”、“内存易溢出”以及“UI渲染卡顿”。环境安装与配置 官网:https://www.qcustomplot.com/index.php/QCustomPlot可直接从官网下载,在工程中引入.h .…

2026/8/4 8:13:14

基于 YOLOv8 的垃圾分类识别系统(全套源码+数据集)

基于 YOLOv8 目标检测模型 PyQt6 桌面端应用的垃圾分类识别系统,覆盖数据集构建、模型训练调优、系统集成开发的完整深度学习工程流程。 开发日期:2026年 目录 项目概述数据集说明深度学习开发流程训练参数训练指标与结果可视化图表说明系统功能技术栈…

2026/8/4 8:13:13

ICLR 2027 限每人投稿 20 篇引争议,AI 介入学术评审该如何应对?

ICLR 2027 新规:投稿数量设上限近日,ICLR 2027 公布新的投稿规则,明确规定任何作者最多只能出现在 20 篇投稿的作者名单中。超出配额的论文会在摘要提交阶段收到提醒,若到全文截止时仍未调整,会议将随机拒绝部分论文&a…

2026/8/3 21:14:30

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/4 0:02:01

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/3 22:40:58

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/3 13:26:41

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/3 16:43:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…