scikit-learn贝叶斯
时间: 2024-12-31 18:46:19 浏览: 10
### Scikit-Learn 中的贝叶斯算法概述
Scikit-learn 提供了多种用于分类和回归任务的贝叶斯模型。主要分为两大类:朴素贝叶斯分类器和支持向量机中的概率估计。
#### 1. 朴素贝叶斯分类器
朴素贝叶斯是一种基于贝叶斯定理并假设特征之间相互独立的概率分类器。该库提供了三种不同类型的朴素贝叶斯实现:
- **高斯朴素贝叶斯 (GaussianNB)**
适用于连续型数据,假定各特征服从正态分布[^3]。
```python
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
model = gnb.fit(X_train, y_train)
predictions = model.predict(X_test)
```
- **多项式朴素贝叶斯 (MultinomialNB)**
适合处理离散计数数据(如词频),参数α控制平滑程度[^4]。
```python
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB(alpha=0.5)
model = mnb.fit(X_train, y_train)
predictions = model.predict(X_test)
```
- **伯努利朴素贝叶斯 (BernoulliNB)**
专为二元或布尔输入设计,可用于文档分类等问题中表示单词是否存在[^5]。
```python
from sklearn.naive_bayes import BernoulliNB
bnb = BernoulliNB(binarize=0.0)
model = bnb.fit(X_train, y_train)
predictions = model.predict(X_test)
```
#### 2. 支持向量机中的概率估计
除了传统的SVM决策函数外,`sklearn.svm.SVC`还支持通过设置`probability=True`启用概率输出功能,这允许使用交叉验证来调整超参数C和gamma的同时获得可靠的置信度分数[^6]。
```python
from sklearn.svm import SVC
svc = SVC(probability=True)
model = svc.fit(X_train, y_train)
proba_predictions = model.predict_proba(X_test)
```
阅读全文