机器学习中的非朴素贝叶斯分类与HOG特征人脸检测
1. 非朴素贝叶斯分类
在传统的朴素贝叶斯分类中,我们为每个类别创建一个简单的生成模型,例如轴对齐的高斯模型,以此构建一个快速分类器。而通过核密度估计(KDE),我们可以去除“朴素”的元素,为每个类别使用更复杂的生成模型进行相同的分类,这就是非朴素贝叶斯分类。
1.1 生成分类的一般方法
生成分类的一般步骤如下:
1. 按标签分割训练数据。
2. 对每个集合拟合KDE,以获得数据的生成模型,从而可以为任何观察值和标签计算似然。
3. 根据训练集中每个类别的样本数量,计算类先验。
4. 对于未知点,计算每个类别的后验概率,后验概率最大的类别即为该点分配的标签。
1.2 自定义估计器的实现
以下是在Scikit - Learn框架中实现该算法的代码:
from sklearn.base import BaseEstimator, ClassifierMixin
import numpy as np
from sklearn.neighbors.kde import KernelDensity
class KDEClassifier(BaseEstimator, ClassifierMixin):
"""Bayesian generative classification based on KDE
Parameters
----------
bandwidth : float
the kernel bandwidth w