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, 凭据扫描, 文本分类, 机器学习, 特征工程, 逆向工具, 钓鱼邮件检测