朴素贝叶斯分类器python的代码
时间: 2024-06-24 17:00:53 浏览: 162
朴素贝叶斯分类器是一种基于概率的简单但强大的分类算法,它假设特征之间相互独立。在Python中,我们可以使用`sklearn`库中的` GaussianNB`或`MultinomialNB`类来实现朴素贝叶斯分类。以下是使用`sklearn`库的`GaussianNB`(高斯朴素贝叶斯)和`MultinomialNB`(多项式朴素贝叶斯)的例子:
```python
# 导入所需的库
from sklearn.datasets import load_iris # 示例数据集
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB, MultinomialNB
from sklearn.metrics import accuracy_score
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 使用高斯朴素贝叶斯
gaussian_nb = GaussianNB()
gaussian_nb.fit(X_train, y_train)
y_pred_gaussian = gaussian_nb.predict(X_test)
print("Gaussian Naive Bayes accuracy:", accuracy_score(y_test, y_pred_gaussian))
# 使用多项式朴素贝叶斯(适用于文本分类)
text_data = ... # 假设这是一个文本数据列表
text_train, text_test, _, _ = train_test_split(text_data, y, test_size=0.3, random_state=42)
vectorizer = CountVectorizer() # 文本向量化
X_train_text = vectorizer.fit_transform(text_train)
X_test_text = vectorizer.transform(text_test)
multinomial_nb = MultinomialNB()
multinomial_nb.fit(X_train_text, y_train)
y_pred_multinomial = multinomial_nb.predict(X_test_text)
print("Multinomial Naive Bayes accuracy:", accuracy_score(y_test, y_pred_multinomial))
```
阅读全文