最小错误率的贝叶斯分类器代码
时间: 2023-10-25 16:10:14 浏览: 104
最小错误率的贝叶斯分类器(Minimum Error Rate Bayes Classifier)是一种常见的分类算法,其基本思想是通过计算各类别的后验概率,然后根据各类别后验概率的大小选择概率最大的类别作为分类结果。
下面是一个简单的最小错误率贝叶斯分类器的Python代码示例,假设我们有两个类别,特征为1维高斯分布:
```python
import numpy as np
import math
# 生成数据
np.random.seed(0)
data1 = np.random.normal(2, 1, 100)
data2 = np.random.normal(5, 1, 100)
# 计算先验概率
prior1 = 0.5
prior2 = 0.5
# 计算均值和方差
mean1 = np.mean(data1)
var1 = np.var(data1)
mean2 = np.mean(data2)
var2 = np.var(data2)
# 定义贝叶斯分类器函数
def bayes_classifier(x):
# 计算后验概率
p1 = (1 / (math.sqrt(2 * math.pi * var1))) * math.exp(-(x - mean1) ** 2 / (2 * var1))
p2 = (1 / (math.sqrt(2 * math.pi * var2))) * math.exp(-(x - mean2) ** 2 / (2 * var2))
# 根据后验概率大小返回分类结果
if p1 * prior1 > p2 * prior2:
return 1
else:
return 2
# 测试分类器
test_data = np.random.normal(4, 1, 10)
for i in range(len(test_data)):
print('测试数据 %d 的分类结果为:' % (i+1), bayes_classifier(test_data[i]))
```
在上面的代码中,我们首先生成了两个类别的数据,然后计算了两个类别的先验概率、均值和方差。接着定义了一个贝叶斯分类器函数,该函数接受一个特征值作为输入,计算该特征值在各个类别下的后验概率,然后返回概率最大的类别作为分类结果。最后,我们随机生成了一些测试数据,并使用分类器对其进行分类。
阅读全文