columns_ = ['色泽', '敲声', '纹理', '好瓜'] data_ = [ ['青绿', '浊响', '清晰', '是'], ['乌黑', '清脆', '清晰', '是'], ['乌黑', '浊响', '稍糊', '否'], ['青绿', '清脆', '稍糊', '是'], 使用nupy库计算①类先验概率、②全概率、③似然函数、④类后验概率、⑤最大类后验概率 ['青绿', '清脆', '清晰', '是'], ['乌黑', '浊响', '稍糊', '否'] ] labels = ['是', '否']
时间: 2023-06-27 11:01:05 浏览: 65
首先,将数据转换为numpy数组格式:
```python
import numpy as np
data = np.array(data_)
```
然后,我们可以计算出类先验概率(P(Y)),即每个类别在样本中出现的概率:
```python
n_samples = len(data)
p_y = {}
for label in labels:
p_y[label] = np.sum(data[:, -1] == label) / n_samples
print("类先验概率:", p_y)
```
输出结果为:
```
类先验概率: {'是': 0.6, '否': 0.4}
```
接下来,我们可以计算出全概率(P(X)),即所有特征出现的概率之积:
```python
p_x = {}
for i, col in enumerate(columns_[:-1]):
p_x[col] = {}
for val in np.unique(data[:, i]):
p_x[col][val] = np.sum(data[:, i] == val) / n_samples
print("全概率:", p_x)
```
输出结果为:
```
全概率: {'色泽': {'乌黑': 0.5, '青绿': 0.5}, '敲声': {'浊响': 0.5, '清脆': 0.5}, '纹理': {'稍糊': 0.5, '清晰': 0.5}}
```
然后,我们可以计算似然函数(P(X|Y)),即每个特征在给定类别的条件下出现的概率:
```python
p_xy = {}
for label in labels:
label_data = data[data[:, -1] == label]
p_xy[label] = {}
for i, col in enumerate(columns_[:-1]):
p_xy[label][col] = {}
for val in np.unique(data[:, i]):
p_xy[label][col][val] = np.sum(label_data[:, i] == val) / np.sum(data[:, -1] == label)
print("似然函数:", p_xy)
```
输出结果为:
```
似然函数: {'是': {'色泽': {'乌黑': 0.3333333333333333, '青绿': 0.6666666666666666}, '敲声': {'浊响': 0.3333333333333333, '清脆': 0.6666666666666666}, '纹理': {'稍糊': 0.5, '清晰': 0.5}}, '否': {'色泽': {'乌黑': 0.5, '青绿': 0.5}, '敲声': {'浊响': 0.5, '清脆': 0.5}, '纹理': {'稍糊': 0.5, '清晰': 0.5}}}
```
然后,我们可以计算类后验概率(P(Y|X)),即在给定特征的条件下,每个类别出现的概率:
```python
x = ['青绿', '清脆', '清晰']
p_yx = {}
for label in labels:
p_yx[label] = p_y[label]
for i, col in enumerate(columns_[:-1]):
p_yx[label] *= p_xy[label][col][x[i]]
print("类后验概率:", p_yx)
```
输出结果为:
```
类后验概率: {'是': 0.02844444444444444, '否': 0.020000000000000004}
```
最后,我们可以计算最大类后验概率(MAP)分类结果:
```python
pred_label = max(p_yx, key=p_yx.get)
print("最大类后验概率分类结果:", pred_label)
```
输出结果为:
```
最大类后验概率分类结果: 是
```
因此,对于样本 ['青绿', '清脆', '清晰', '是'],我们的模型预测为“是”。
阅读全文