朴素贝叶斯算法实例代码
时间: 2023-06-19 11:06:24 浏览: 94
下面是一个简单的朴素贝叶斯算法的实例代码,用于将电子邮件分类为垃圾邮件或非垃圾邮件:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# 加载数据集
data = pd.read_csv('spam.csv', encoding='latin-1')
# 将邮件内容和标签分开
X = data['text']
y = data['class']
# 将邮件内容转换为数字特征向量
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(X)
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练朴素贝叶斯分类器
nb_classifier = MultinomialNB()
nb_classifier.fit(X_train, y_train)
# 预测测试集的结果
y_pred = nb_classifier.predict(X_test)
# 计算分类器的准确率
accuracy = np.mean(y_pred == y_test)
print("Accuracy:", accuracy)
```
在这个例子中,我们使用了一个基于词频的特征提取器将电子邮件内容转换为数字特征向量。然后,我们将数据集分为训练集和测试集,并使用训练集训练朴素贝叶斯分类器。最后,我们使用测试集评估分类器的准确率。