数据入口:基于机器学习的垃圾信息识别分类 - Heywhale.com
本数据集专为邮件和短信的垃圾信息分类设计,适合建立垃圾邮件检测模型。
数据说明
字段名 | 说明 |
---|---|
message_content | 邮件或短信的正文内容 |
is_spam | 标签,指示该消息是否为垃圾信息(1表示垃圾邮件,0表示非垃圾邮件) |
在本文中主要包含垃圾和非垃圾邮件模式剖析以及利用机器学习模型对垃圾邮件过滤器进行训练和测试。
一:垃圾邮件模式分析
为了分析垃圾邮件中的常见模式,例如促销优惠、钓鱼攻击等,接下来我们可以仅选择标签为1的垃圾邮件,并对这些邮件的内容进行文本分析。首先,我们可以使用TF-IDF技术来识别垃圾邮件中的关键词。这将帮助我们了解哪些词在垃圾邮件中最常见。然后,我们可以使用一些基本的文本处理技术,如分词和去除停用词,来进一步分析文本数据。最后,我们将总结垃圾邮件中的常见模式。
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
file_path = 'spam_dataset.csv'
data = pd.read_csv(file_path)
spam_messages = data[data['is_spam'] == 1]['message_content']
vectorizer = TfidfVectorizer(max_features=20, stop_words='english')
X = vectorizer.fit_transform(spam_messages)
feature_names = vectorizer.get_feature_names_out()
top_words = np.argsort(X.sum(axis=0)).flatten()[::-1]
top_words_in_spam = [feature_names[i] for i in top_words]
top_words_in_spam
从TF-IDF分析中,我们可以看到垃圾邮件中最常见的词汇包括:“avoid”, “verify”, “fast”, “win”, “free”, “time”, “special”, “limited”, “account”, “claim”, “offer”, “don’t”, “miss”, “act”, “click”, “directly”, “visit”, “website”, “contact”, 和 “details”。
这些词汇可以帮助我们识别垃圾邮件的一些常见模式,例如:
- 促销优惠:词汇如 “free”, “special”, “limited”, “offer”, “act now” 和 “time” 通常与促销优惠相关。
- 钓鱼攻击:词汇如 “verify”, “account”, “claim” 和 “details” 可能表明这是一封钓鱼邮件,试图获取个人信息。
- 紧急性:词汇如 “fast”, “don’t miss” 和 “directly” 通常用来创造紧迫感,促使收件人迅速采取行动。
要进一步细分垃圾邮件类型,我们可以使用无监督学习技术,如聚类分析。我们可以使用TF-IDF向量作为聚类的特征。选择一个合适的聚类算法,如K-means,并选择一个合适的聚类数量。最后对聚类结果进行解释,以识别不同的垃圾邮件类型。
from sklearn.cluster import KMeans
X_spam = X.todense()
num_clusters = 3
X_spam_array = np.array(X_spam)
kmeans = KMeans(n_clusters=num_clusters, random_state=42)
kmeans.fit(X_spam_array)
cluster_labels = kmeans.labels_
data_spam = data[data['is_spam'] == 1]
data_spam['cluster_label'] = cluster_labels
data_spam.head()
我们已经成功地对垃圾邮件进行了聚类分析,并将聚类标签添加到了数据框中。现在,我们可以进一步分析每个聚类中的