朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理和特征条件独立假设的分类方法。在 Python 中,我们可以通过以下步骤实现朴素贝叶斯分类器:
- 导入所需库:
“`python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
2. 准备数据集:
python
示例数据集
data = [
[“这是一个好的文章”, “这是”],
[“这是一篇非常好的文章”, “这是”],
[“这是一篇很差的文章”, “这是”],
]
labels = [0, 0, 1]
3. 划分数据集为训练集和测试集:
python
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.3, random_state=42)
4. 特征提取:
python
vectorizer = CountVectorizer()
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)
5. 创建朴素贝叶斯分类器:
python
clf = MultinomialNB()
6. 训练分类器:
python
clf.fit(X_train_vec, y_train)
7. 预测:
python
y_pred = clf.predict(X_test_vec)
8. 评估分类器:
python
accuracy = accuracy_score(y_test, y_pred)
print(“Accuracy:”, accuracy)
9. 可视化结果:
python
plt.scatter(range(len(y_test)), y_test, c=y_pred, cmap=”viridis”)
plt.xlabel(“Index”)
plt.ylabel(“True Label”)
plt.title(“Predicted Label”)
plt.show()
“`
以上代码实现了朴素贝叶斯分类器,并使用拉普拉斯平滑处理了概率计算。在实际应用中,朴素贝叶斯分类器可以用于垃圾邮件分类、文本分类等任务。但需要注意的是,朴素贝叶斯分类器在属性相关性较大时分类效果不佳,这时可以考虑使用半朴素贝叶斯等改进方法。