高斯朴素贝叶模型极大似然
时间: 2025-01-02 14:32:30 浏览: 8
### 高斯朴素贝叶斯模型中的极大似然估计
在机器学习领域,高斯朴素贝叶斯(Gaussian Naive Bayes, GNB)是一种常用于分类任务的算法。该模型假设连续型特征数据服从正态分布,并通过极大似然估计来确定参数。
对于给定的数据集 \(D=\{(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)\}\),其中\(x_i\)表示样本属性向量而\(y_i\)代表类别标签。当考虑某个特定类别的条件下,如果某维特征\(X_j|C_k \sim N(\mu_{jk},\sigma^2_{jk})\),即条件概率密度函数可以写作:
\[ p(x_j | C_k)=\frac{1}{\sqrt{2πσ^2}}exp(-\frac{(x-\mu)^2}{2σ^2}) \]
为了求解上述公式中的均值\(\mu\)和方差\(\sigma ^2\)这两个未知数,可以通过最大化对数似然函数来进行参数估计。具体来说就是找到一组最优参数使得训练集中所有样例属于各自真实标记的可能性最大。
设第k个类别下j维度上的观测值集合为\({x^{(i)}_j : y^{(i)}=c_k,i=1,\dots,m }\),那么对应的MLE解决方案如下所示[^4]:
- 均值的最大似然估计:
\[ μ_{ML} = \frac{\sum^n_{i=1}(I(y_i=c_k)x^{(i)}_j)}{\sum^n_{i=1}(I(y_i=c_k))} \]
这里\(I()\)是一个指示函数,只有当内部逻辑成立时返回1;否则返回0。
- 方差的最大似然估计:
\[ σ^2_{ML}= \frac{\sum^n_{i=1}(I(y_i=c_k)(x^{(i)}_j−μ_{ML}))^2 } {\sum^n_{i=1}(I(y_i=c_k))} \]
这些公式的含义是在已知类别的情况下,分别计算各个特征维度上样本取值的平均值作为均值的最佳猜测,以及围绕这个中心点波动程度的一个衡量标准——方差。
一旦获得了每个类别下的各特征分量所对应的最佳拟合正态分布参数之后,就可以利用贝叶斯决策理论完成预测工作了。也就是说,对于一个新的输入实例,我们只需要将其映射到最有可能的那个类别上去即可[^5]。
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
# 加载鸢尾花数据集并划分测试集与训练集
data = load_iris()
X_train, X_test, Y_train, Y_test = train_test_split(data.data, data.target)
# 创建高斯朴素贝叶斯对象并进行训练
gnb = GaussianNB().fit(X_train, Y_train)
print(f'Test set score: {gnb.score(X_test,Y_test):.2f}')
```
阅读全文