phishingDP
介绍
phishingDP是一个基于机器学习的网络钓鱼邮件智能检测与防护系统,旨在通过深度学习技术识别潜在的钓鱼邮件,保护用户免受网络诈骗威胁。该系统集成了数据预处理、模型训练、实时预测和结果可视化功能,提供用户友好的Web界面,支持邮件内容输入、预测结果展示以及模型性能分析。
核心功能:
- 检测输入邮件是否为钓鱼邮件(二分类:正常/钓鱼)。
- 提供详细的模型性能可视化,包括训练曲线、混淆矩阵、ROC曲线等。
- 支持模型重新训练,适应新数据或优化性能。
- 记录预测历史,便于追踪和分析。
实现思路:
- 数据获取:使用
spam_assassin.csv
数据集,包含邮件内容和标签(0=正常,1=钓鱼)。 - 数据预处理:通过NLTK分词和Scikit-learn的TF-IDF向量化,将邮件文本转换为特征向量。
- 模型构建:基于Keras的Sequential神经网络,包含多层Dense和Dropout,用于二分类任务。
- 模型训练与保存:训练模型并保存为HDF5格式,支持重复加载和预测。
- 实时预测:通过Flask Web界面接收用户输入的邮件内容,调用模型进行预测。
- 结果展示:展示预测结果(钓鱼/正常)及概率,同时记录预测日志。
- 性能可视化:生成训练历史、混淆矩阵、ROC曲线、PR曲线和性能指标图,保存在
static
目录。
软件架构
系统采用模块化设计,结合Python生态中的多种工具,架构清晰且易于扩展:
- 前端:
- 使用Flask的Jinja2模板引擎,渲染HTML页面。
- 提供主页(邮件输入)、结果页(预测结果与日志)和可视化页(模型性能图表)。
- 支持动态更新日志内容,增强交互性。
- 后端:
-
- Flask框架处理路由(
/
、/predict
、/visualize
、/retrain
)和请求。 - 集成Keras模型,执行实时预测。
- 日志系统将预测结果和邮件内容保存至
prediction_results.log
。
- Flask框架处理路由(
- 数据处理:
-
- NLTK:用于邮件文本分词,生成词序列。
- Scikit-learn:使用
TfidfVectorizer
将文本转换为TF-IDF特征向量(最大5000维)。 - 数据集分割为80%训练集和20%测试集,确保模型评估的可靠性。
- 模型:
-
- Keras Sequential模型,结构为:
-
-
- 输入层:接受TF-IDF特征(5000维)。
- 隐藏层1:128个神经元,ReLU激活,Dropout(0.2)防止过拟合。
- 隐藏层2:64个神经元,ReLU激活。
- 输出层:1个神经元,Sigmoid激活,输出钓鱼概率。
-
-
- • 优化器:Adam;损失函数:二元交叉熵;评估指标:准确率。
- • 训练参数:5个epoch,批次大小32。
- • 模型保存为
phishing_model.h5
,便于重复使用。
- 可视化:
-
- 使用Matplotlib和Seaborn生成以下图表,存储在
static
目录:
- 使用Matplotlib和Seaborn生成以下图表,存储在
-
-
- 训练/验证损失和准确率曲线(
loss_curve.png
,accuracy_curve.png
)。 - 混淆矩阵热图(
confusion_matrix.png
)。 - ROC曲线(含AUC,
roc_curve.png
)。 - 精确率-召回率曲线(
pr_curve.png
)。 - 性能指标条形图(准确率、精确率、召回率、F1得分,
metrics_bar.png
)。
- 训练/验证损失和准确率曲线(
-
-
- 数据文件(如
training_history.csv
,confusion_matrix.npy
)支持图表重现。
- 数据文件(如
- 日志:
-
- 预测结果以时间戳、结果(钓鱼/正常)、概率和邮件内容的格式记录。
- 日志文件动态加载到前端,方便用户查看历史记录。
安装教程
- 克隆仓库
git clone https://github.com/yourusername/phishingDP.git cd phishingDP
- 安装依赖
确保已安装Python 3.8+,然后安装所需库:pip install -r requirements.txt - 下载NLTK数据
运行以下命令下载NLTK分词器所需数据:python -m nltk.downloader punkt - 准备数据集
将spam_assassin.csv数据集放置在项目根目录下。如果没有数据集,可从公开数据集(如SpamAssassin)下载并转换为CSV格式。
使用说明
启动应用
在项目根目录下运行:python app.py
默认在http://0.0.0.0:5003启动服务。
访问页面
- 打开浏览器,访问http://localhost:5003/。
- 在主页输入邮件内容,点击提交以预测是否为钓鱼邮件。
- 查看预测结果和历史记录(日志)。
- 查看可视化
访问http://localhost:5003/visualize查看模型性能图表,包括: - 训练过程中的损失和准确率曲线
- 混淆矩阵
- ROC曲线
- 精确率-召回率曲线
- 性能指标条形图(准确率、精确率、召回率、F1得分)
- 重新训练模型
- 通过http://localhost:5003/retrain(POST请求)触发模型重新训练。
- 或者删除phishing_model.h5文件后重启应用,系统会自动重新训练。
特技
- 高性能模型:使用TF-IDF特征化和Keras神经网络,实现高效的钓鱼邮件检测。
- 丰富可视化:提供多维度评估图表(混淆矩阵、ROC曲线等),便于分析模型性能。
- 用户友好:简洁的Web界面,支持实时预测和历史记录查看。
- 可扩展性:支持模型重新训练,易于集成新数据集或优化算法。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)