生成一段python实现朴素贝叶斯分类器的代码
时间: 2023-10-01 16:09:20 浏览: 48
当然可以帮您生成朴素贝叶斯分类器的Python代码,下面就是一个简单的例子:
```
import numpy as np
class NaiveBayesClassifier:
def fit(self, X, y):
self.num_classes = len(np.unique(y))
self.num_features = X.shape[1]
self.mu = np.zeros((self.num_classes, self.num_features))
self.var = np.zeros((self.num_classes, self.num_features))
self.prior = np.zeros(self.num_classes)
for c in range(self.num_classes):
X_c = X[y==c]
self.mu[c] = X_c.mean(axis=0)
self.var[c] = X_c.var(axis=0)
self.prior[c] = X_c.shape[0] / X.shape[0]
def predict(self, X):
posterior = np.zeros((self.num_classes, X.shape[0]))
for c in range(self.num_classes):
prior_c = np.log(self.prior[c])
posterior[c] = np.sum(np.log(self.pdf(X, c)), axis=1) + prior_c
return np.argmax(posterior, axis=0)
def pdf(self, X, class_idx):
mu_c = self.mu[class_idx]
var_c = self.var[class_idx]
numerator = np.exp(-(X - mu_c) ** 2 / (2 * var_c))
denominator = np.sqrt(2 * np.pi * var_c)
return numerator / denominator
```
希望这个例子可以对你有所帮助。如果你有更多的问题,请随便问我。