多项式朴素贝叶斯分类器
时间: 2024-12-25 15:21:50 浏览: 2
### 多项式朴素贝叶斯分类器简介
多项式朴素贝叶斯是一种适用于离散数据集的概率分类方法,尤其适合处理多类别特征的数据。该算法基于贝叶斯定理并假设输入变量之间相互独立[^1]。
对于文本分类等应用场景而言,多项式模型非常适合用于描述文档中词频向量这样的整数值特性。其概率计算方式如下:
\[ P(c|x_1,...,x_n) \propto P(c)\prod_{i=1}^{n}{P(x_i|c)} \]
其中 \( c \) 表示类别标签;\( x_i \) 是第 i 个属性值;而乘积部分则表示给定类别的条件下各个属性发生的条件概率之积[^2]。
### Python 实现与应用实例
下面展示如何利用 scikit-learn 库来构建一个简单的多项式朴素贝叶斯分类器,并应用于鸢尾花数据集上进行训练和预测操作。
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3)
# 创建多项式朴素贝叶斯对象
clf = MultinomialNB()
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集样本所属类别
y_pred = clf.predict(X_test)
print(f'Accuracy: {accuracy_score(y_test, y_pred):.4f}')
```
上述代码片段展示了从加载数据到评估模型性能的一系列过程。通过调用 `MultinomialNB` 类可以轻松创建一个多项式朴素贝叶斯分类器,并使用 `.fit()` 方法对其进行拟合训练。最后还可以借助于 `accuracy_score` 函数快速获取模型在测试集上的准确性得分[^3]。
阅读全文