python分类统计数量朴素贝叶斯
时间: 2023-10-14 11:25:45 浏览: 81
朴素贝叶斯Python实例及解析
5星 · 资源好评率100%
朴素贝叶斯分类器是一种基于贝叶斯定理的分类算法,它假设每个特征都是独立的,并且使用极大似然估计来估计每个特征的条件概率。在Python中,可以使用scikit-learn库中的MultinomialNB类实现朴素贝叶斯分类器。
下面是一个简单的示例代码,使用朴素贝叶斯分类器对文本数据进行分类统计:
```python
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# 训练数据
train_data = [
{'text': 'Chinese Beijing Chinese', 'label': 'China'},
{'text': 'Chinese Chinese Shanghai', 'label': 'China'},
{'text': 'Chinese Macao', 'label': 'China'},
{'text': 'Tokyo Japan Chinese', 'label': 'Japan'}
]
# 测试数据
test_data = [
{'text': 'Chinese Chinese Chinese Tokyo Japan', 'label': 'China'},
{'text': 'Tokyo Tokyo Japan', 'label': 'Japan'}
]
# 特征提取器,将文本转换为词频向量
vectorizer = CountVectorizer()
# 训练集特征和标签
train_features = vectorizer.fit_transform([d['text'] for d in train_data])
train_labels = [d['label'] for d in train_data]
# 测试集特征和标签
test_features = vectorizer.transform([d['text'] for d in test_data])
test_labels = [d['label'] for d in test_data]
# 创建朴素贝叶斯分类器
clf = MultinomialNB()
# 训练模型
clf.fit(train_features, train_labels)
# 预测测试集标签
pred_labels = clf.predict(test_features)
# 输出预测结果
for i, d in enumerate(test_data):
print('文本:', d['text'], '真实标签:', d['label'], '预测标签:', pred_labels[i])
```
上述代码中,训练数据和测试数据都是以字典形式存储,其中每个文本数据都有一个标签。使用CountVectorizer特征提取器将文本转换为词频向量,然后使用MultinomialNB类创建朴素贝叶斯分类器,并使用fit方法训练模型。最后,使用predict方法对测试集进行预测,并输出预测结果。
阅读全文