一、贝叶斯分类器基础
1、应用场景:文本数据的分类
2、
1、用到的概率公式
二、朴素贝叶斯分类器
1、朴素的概念:
1、朴素贝叶斯分类器:“特征属性之间是独立的”这一朴素假设,应用贝叶斯定理的有监督学习算法
2、
2、朴素贝叶斯公式的推导
- 贝叶斯公式的通式
- 朴素贝叶斯公式
- 朴素贝叶斯算法流程
朴素贝叶斯计算图解
3、朴素贝叶斯条件概率求解方式
1、高斯朴素贝叶斯
2、伯努利朴素贝叶斯
3、多项式朴素贝叶斯
注意:多项式朴素贝叶斯需要加入平滑系数
目的:平滑的主要作用是可以克服条件概率为0的问题,因为某一个特征属性有可能只有在某一个类别中存在,其他类别为特征属性值
为零,即计算其他类别时条件概率为零,会导致整个特征属性条件概率为零,从而造成预测错误。
- 多项式朴素贝叶斯案例理解
未做平滑系数求解:
做平滑系数求解:
三、贝叶斯网络
1、原因:存在着特征属性之间存在着依赖关系
2、概念:贝叶斯网络(Bayesian Network),又称有向无环图模型(directed acyclic graphical model, DAG)
3、优缺点:
优点:考虑到了朴素贝叶斯无法解决特征属性存在着依赖关系的问题
缺点:贝叶斯网络依赖关系较难获取。
4、贝叶斯网络 与 朴素贝叶斯 计算的区别?
1、朴素贝叶斯 计算条件联合概率 p(x1,x2..xn | yi) = p(x1|yi) * ... * p(xn|yi)
2、贝叶斯网络 计算条件联合概率 p(x1,x2..xn | yi)要利用全概率公式计算,其他均一样。
1、贝叶斯网络概率计算
- 最简单的一个贝叶斯网络
- 全连接贝叶斯网络
- “正常”贝叶斯网络
2、贝叶斯网络判定条件独立
(1)贝叶斯网络判定条件独立-01
(2)贝叶斯网络判定条件独立-02
(3)贝叶斯网络判定条件独立-03
四、EM算法
1、最大似然估计(MLE)
2、最大后验概率估计(MAP) ------- 贝叶斯估计
3、KMeans算法(无监督聚类)
pass
4、EM算法
1、EM算法是一种求出有未知量(无监督)模型的最优参数的一种算法,也就是说它是一种求解思想,不是一个模型。
2、EM使用场景:除了未知的模型参数,还有其他的未知参量(没有标签,无监督学习) ========> 求解模型最优的θ
3、EM算法过程:类似于KMeans循环迭代更新,每次都是期望最大(期望每个蔟的似然函数最大)。
(1)EM算法基础
1、EM算法是一种迭代类型的算法,是一种在概率模型中寻找参数最大似然估计或者最大 后验估计的算法,其中概率模型依赖于无
法观测的隐藏变量。
2、• EM算法流程:
• 初始化分布参数/模型参数
• 重复下列两个操作直到收敛:
• E步骤:估计隐藏变量的概率分布期望函数;
• M步骤:根据期望函数重新估计分布参数。
(2)EM算法执行步骤
(3)EM算法、极大似然估计、贝叶斯估计
1、贝叶斯估计:最大后验概率(MAP)估计,它是一种标签先验不是处处相等的极大似然估计,通常用来做文本分类问题,即监督学习。
2、极大似然估计:MLE,它是一种特殊的MAP算法,它是有监督的算法。
3、EM算法:它是一种无监督的聚类算法;思想与KMeans迭代思想相同。
5、GMM 高斯混合模型
1、GMM:多个高斯分布(一元或多元,一个高斯分布相当于一个蔟)线性叠加而成的模型。 ---------- 无监督聚类算法,高斯
模型的个数 = 聚类蔟的个数。
2、GMM模型中因为有未知参量,所以它需要使用EM算法来求解模型最优参数。
3、GMM模型的优缺点:
优点:
缺点:在蔟与蔟差异较小的分类效果较差。
(1) 混合高斯模型的概率密度
(2)GMM更新的参数公式
、贝叶斯分类器API
库地址:sklearn.naive_bayes: Naive Bayes
1、Gaussian Naive Bayes -------高斯朴素贝叶斯
from sklearn.naive_bayes import GaussianNB
class sklearn.naive_bayes.GaussianNB(priors=None)
'''
priors=None ------- 自定义先验概率,默认即可
'''
2、multinomial ------ 多项式朴素贝叶斯
class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
'''
alpha=1.0 --------- 多项式朴素贝叶斯的平滑系数,默认即可
fit_prior=True --------- 是否训练先验概率,默认即可
class_prior=None --------- 类的先验概率。如果指定,则不根据数据调整先验;默认即可
'''
3、Bernoulli -------- 伯努利朴素贝叶斯
class sklearn.naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
'''
alpha=1.0 ----------- 拉普拉斯/ Lidstone)平滑参数(0表示无平滑)
fit_prior=True
class_prior=None
'''
、GMM、EM算法API
sklearn.mixture: Gaussian Mixture Models
class sklearn.mixture.GaussianMixture(n_components=1, covariance_type='full', tol=0.001,
reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weights_init=None,
means_init=None, precisions_init=None, random_state=None, warm_start=False, verbose=0,
verbose_interval=10)
class sklearn.mixture.BayesianGaussianMixture(n_components=1, covariance_type='full',
tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans',
weight_concentration_prior_type='dirichlet_process', weight_concentration_prior=None,
mean_precision_prior=None, mean_prior=None, degrees_of_freedom_prior=None,
covariance_prior=None, random_state=None, warm_start=False, verbose=0,
verbose_interval=10)