用python写一个基于朴素贝叶斯的垃圾数据过滤
时间: 2023-06-27 13:02:08 浏览: 111
基于朴素贝叶斯的垃圾邮件过滤系统(Python)
好的,以下是一个简单的基于朴素贝叶斯的垃圾数据过滤的Python代码:
```python
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
# 读入数据
data = pd.read_csv("spam.csv", encoding="latin-1")
# 划分数据集
train_data = data.sample(frac=0.8, random_state=1)
test_data = data.drop(train_data.index)
# 特征提取
vectorizer = CountVectorizer()
train_features = vectorizer.fit_transform(train_data["text"])
test_features = vectorizer.transform(test_data["text"])
# 训练模型
clf = MultinomialNB()
clf.fit(train_features, train_data["label"])
# 测试模型
accuracy = clf.score(test_features, test_data["label"])
print("Accuracy:", accuracy)
# 预测新数据
new_text = ["Get a free gift now!", "Hey, how are you doing?"]
new_features = vectorizer.transform(new_text)
predicted_labels = clf.predict(new_features)
print(predicted_labels)
```
其中,我们使用了Pandas库来读取CSV格式的垃圾邮件数据集。然后,我们将数据集划分为训练集和测试集,并使用CountVectorizer将邮件文本转换为特征向量。接着,我们使用MultinomialNB训练朴素贝叶斯分类器,并计算模型在测试集上的准确率。最后,我们使用训练好的模型来预测新的邮件文本是否为垃圾邮件。
注意,这只是一个简单的示例代码,实际应用中需要更加细致的数据清洗和特征工程处理。
阅读全文