项目简介
本项目是基于Python实现的朴素贝叶斯邮件分类系统,借助机器学习技术来区分邮件是否为垃圾邮件。项目涵盖探索性数据分析、数据清洗、特征提取,以及朴素贝叶斯分类器的实现与训练,还提供网格搜索以优化模型参数。
项目的主要特性和功能
- 探索性数据分析:统计邮件头、邮件体及数据集整体信息,初步掌握数据特征。
- 数据清洗与处理:利用工具清洗原始数据并进行全局统计分析。
- 特征提取:从邮件数据中提取有效特征用于分类。
- 朴素贝叶斯分类:采用朴素贝叶斯算法进行邮件分类,支持五折交叉验证。
- 网格搜索:通过448次网格搜索优化模型参数,提升分类性能。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,需提前执行以下代码下载必要的NLTK数据:
python
import nltk
nltk.download('wordnet')
nltk.download('stopwords')
nltk.download('punkt')
具体步骤
- 将
trec06p
文件夹放在src
的同级目录。 - 在
trec06p
下建立inter
文件夹,在inter
文件夹下创建records.csv
文件,并在第一行添加字段LOWERCASE,N,PERCENTAGE,ALPHA,CRAFT,accuracy,precision,recall,f1_score
。 - 在
src
目录下执行以下命令:bash python main.py
执行后,首先会进行一次默认参数的实现,此过程会输出朴素贝叶斯分类器五折交叉验证的变量列表;随后会进行448次网格搜索,该过程所需时间较长,请耐心等待。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】