harshvijay-c/Phishing-Email-Detection

GitHub: harshvijay-c/Phishing-Email-Detection

基于NLP和机器学习的端到端钓鱼邮件分类项目,通过对比多种经典ML模型与PyTorch神经网络实现钓鱼邮件与合法邮件的自动化识别。

Stars: 0 | Forks: 0

# 基于机器学习的钓鱼邮件检测 这是一个端到端的机器学习项目,旨在利用自然语言处理 (NLP)、特征工程、经典机器学习算法以及基于神经网络的方法来检测钓鱼邮件。 该项目专注于分析邮件元数据和文本内容,从而将邮件分类为合法邮件或钓鱼邮件。 ## 项目概述 钓鱼邮件是最常见的网络安全威胁之一,攻击者通常通过冒充可信来源来试图获取敏感信息。 本项目构建并比较了多种用于钓鱼邮件分类的机器学习模型,使用了以下数据: - 邮件主题和正文 - 发件人和收件人信息 - URL 存在指示符 - 构建的文本和元数据特征 ## 数据集 该数据集包含带有以下特征的带标签邮件: | 特征 | 描述 | |---|---| | 发件人 | 发件人邮箱地址 | | 收件人 | 收件人邮箱地址 | | 日期 | 邮件时间戳 | | 主题 | 邮件主题行 | | 正文 | 邮件内容 | | URL | 指示是否存在 URL | | 标签 | 钓鱼邮件或合法邮件 | ## 机器学习 Pipeline 整体工作流程如下: ``` Dataset | v Exploratory Data Analysis | v Text Cleaning & Preprocessing | v Feature Engineering | v TF-IDF Vectorization | v Model Training | v Evaluation ``` ## 文本预处理 对邮件主题和正文进行了清理,包括: - 转换为小写 - 移除 HTML 标签 - 移除 URL - 清理标点符号 - 移除停用词 - 词形还原 清理后的主题和正文文本被合并,并使用 TF-IDF 向量化转换为数值表示。 ## 特征工程 从邮件中提取了额外的特征,包括: - 主题长度 - 正文长度 - 特殊字符的数量 - 大写单词模式 - 是否存在 URL - 基于发件人的特征 - 基于日期/时间的特征 这些特征与 TF-IDF 表示相结合,用于模型训练。 ## 已实现的模型 ### 经典机器学习模型 训练并比较了以下模型: - 逻辑回归 - 支持向量机 (SVM) - 多项式朴素贝叶斯 - 随机森林分类器 - XGBoost 分类器 使用的技术: - 训练集与测试集划分 - 交叉验证 - 超参数调优 - 模型比较 ## 神经网络方法 使用 PyTorch 实现了基本的人工神经网络 (ANN) / 多层感知机 (MLP) 分类器。 该神经网络模型使用向量化后的邮件表示进行训练,并与传统的机器学习模型进行了比较。 ## 评估指标 使用以下指标对模型进行了评估: - 准确率 - 精确率 - 召回率 - F1分数 - ROC-AUC 分数 - 混淆矩阵 由于钓鱼检测是一个对安全性高度敏感的问题,因此重点在于降低假阴性并提高召回率。 ## 仓库结构 ``` Phishing-Email-Detection/ ├── data/ │ └── Dataset files ├── notebooks/ │ ├── Classical ML experiments │ └── Neural network experiments ├── results/ │ ├── Model performance results │ └── Evaluation plots ├── README.md └── requirements.txt ``` ## 使用的技术 - Python - NumPy - Pandas - Scikit-Learn - XGBoost - PyTorch - NLTK - Matplotlib - Seaborn - Jupyter Notebook ## 未来改进 计划中的扩展: - 实现循环神经网络 - 尝试基于 transformer 的模型,例如 BERT - 改进邮件元数据的特征提取 - 将分类器部署为 Web 应用程序/API - 添加可解释性技术以进行模型解释 ## 结果 模型比较: | 模型 | 准确率 | 精确率 | 召回率 | F1分数 | |---|---|---|---|---| | 逻辑回归 | - | - | - | - | | SVM | - | - | - | - | | 朴素贝叶斯 | - | - | - | - | | 随机森林 | - | - | - | - | | XGBoost | - | - | - | - | | MLP | - | - | - | - | (随着实验的进一步优化,结果将持续更新。) ## 作者 本项目作为一个机器学习项目开发,旨在探索基于 NLP 的网络安全应用。
标签:Apex, NoSQL, PyTorch, TF-IDF, 凭据扫描, 文本分类, 机器学习, 特征工程, 逆向工具, 钓鱼邮件检测