使用python实现贝叶斯分类器
时间: 2024-01-01 22:04:52 浏览: 85
贝叶斯分类器是一种基于贝叶斯定理的分类器,它假设每个特征与标签之间是独立的。在Python中,我们可以使用scikit-learn库中的`GaussianNB`实现高斯朴素贝叶斯分类器。下面是一个简单的示例:
```python
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
iris = load_iris()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# 创建高斯朴素贝叶斯分类器
gnb = GaussianNB()
# 训练模型
gnb.fit(X_train, y_train)
# 预测测试集结果
y_pred = gnb.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
在这个示例中,我们使用`load_iris()`加载了鸢尾花数据集,并使用`train_test_split()`将其划分为训练集和测试集。然后,我们创建了一个`GaussianNB`分类器,并使用`fit()`方法将其训练。最后,我们使用`predict()`方法对测试集进行预测,并使用`accuracy_score()`方法计算准确率。
需要注意的是,朴素贝叶斯分类器假设特征之间是独立的,因此在实际应用中,我们需要根据具体情况选择合适的分类器。另外,对于非高斯分布的特征,我们可以使用多项式朴素贝叶斯或伯努利朴素贝叶斯分类器。
阅读全文