生成python实现朴素贝叶斯分类器的代码
时间: 2023-10-01 20:09:23 浏览: 45
以下是实现朴素贝叶斯分类器的 Python 代码:
```
from collections import Counter
from math import log
class NaiveBayesClassifier:
def __init__(self):
self.classes = None
self.word_counts = None
self.priors = None
def fit(self, X, y):
self.classes = set(y)
self.word_counts = {c: Counter() for c in self.classes}
self.priors = Counter(y)
for i in range(len(X)):
c = y[i]
self.word_counts[c].update(X[i])
def predict(self, X):
predictions = []
for x in X:
score = {c: log(self.priors[c]) for c in self.classes}
for word in x:
for c in self.classes:
count = self.word_counts[c][word]
score[c] += log((count + 1) / (sum(self.word_counts[c].values()) + len(self.word_counts[c])))
predictions.append(max(score, key=score.get))
return predictions
```
请注意,这只是一个朴素贝叶斯分类器的基本实现,可能需要进一步的优化和改进,具体取决于数据集和需求。