朴素贝叶斯分类器python实例
时间: 2023-09-13 11:10:01 浏览: 49
Python实现的朴素贝叶斯分类器示例
5星 · 资源好评率100%
以下是一个基于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')
data = data[['v1', 'v2']]
data = data.rename(columns={"v1": "label", "v2": "text"})
# 将标签转换为二进制变量
data['label'] = data['label'].map({'ham': 0, 'spam': 1})
# 分割数据集为训练集和测试集
train_data = data[:4400]
test_data = data[4400:]
# 特征工程
count_vectorizer = CountVectorizer(stop_words='english')
train_feature_vectors = count_vectorizer.fit_transform(train_data['text'])
test_feature_vectors = count_vectorizer.transform(test_data['text'])
# 训练模型
naive_bayes_classifier = MultinomialNB()
naive_bayes_classifier.fit(train_feature_vectors, train_data['label'])
# 预测测试集
predictions = naive_bayes_classifier.predict(test_feature_vectors)
# 测试模型准确度
accuracy = (predictions == test_data['label']).mean()
print("准确度:", accuracy)
```
这个示例中,我们首先加载数据集,将标签转换为二进制变量,并将数据集分成训练集和测试集。然后,我们使用CountVectorizer将文本数据转换为数值特征。接着,我们使用MultinomialNB训练朴素贝叶斯分类器。最后,我们使用训练好的模型预测测试集,并计算模型准确度。
阅读全文