DS&ML_分类算法笔记之朴素贝叶斯模型
其他相关文章
DS&ML_关联分析笔记
DS&ML_分类算法笔记之支持自动机SVM模型
DS&ML_分类算法笔记之随机森林、梯度提升树、XGBoost模型
DS&ML_分类算法笔记之k-近邻、KD-Tree模型
DS&ML_降维算法笔记之主成分分析PCA模型
DS&ML_聚类算法笔记之k-means模型
DS&ML_分类算法笔记之决策树模型
DS&ML_分类算法笔记之逻辑回归模型
对于朴素贝叶斯模型的相关知识点的总结与整理
简单描述一下朴素贝叶斯的思想,朴素贝叶斯是什么?
朴素贝叶斯是一种分类算法,是贝叶斯分类算法的一种,贝叶斯分类算法都是以贝叶斯定理为基础的分类算法。
与一般贝叶斯分类器的区别
- 只要是基于贝叶斯理论的分类器都叫贝叶斯分类器(Copyright © https://blog.****.net/s_gy_zetrov. All Rights Reserved)
- 朴素贝叶斯对条件概率做了类条件独立性的假设(假设分类的特征在类确定的条件下都是独立的),这是一个较强(影响很大)的假设
朴素贝叶斯的思想:对于给出的待分类项,求解在此项出现的条件下各个目标类别出现的概率,哪个最大,就认为此分类项属于哪个目标类别。
为什么称为“朴素”?
- 朴素是因为“优化”过运算性能高
- “优化“举例:若特征可能的取值有N个,每个可能的取值需要1000个样本来进行训练,那对应的情况有N的1000次方种,同时也需要这么多的样本进行总的训练。但有了简化性的Bayes假设后,只需要N*1000个样本进行训练即可。
具体算法
- 如果是分类变量,边际似然概率可以通过计数求得;如果是连续变量,需要假设属性服从正态分布,然后通过概率密度公式(正态分布的概率密度函数曲线呈钟形)求边际似然概率,如果就不是正态分布,一定要想办法变成正态分布
- 对测试数据中的0频次项,一定要记得处理(用平滑),因为如果在训练集里没见过,则后验概率就是0了,这样会导致预测功能失效(预测该特征取到当前值的概率为0)。解决方法是平滑(在单特征各个取值的后验概率公式的分子适当增加一个数值,来避免概率为0)可以用『拉普拉斯平滑』:分子加1,分母加K,K代表类别数目
- 计算每种目标类别Ai对应的先验概率(P(A=Ai))和带分类项每项属性的取值Bi对应的目标类别Ai的条件概率(P(B=Bi|A=Ai))
- 当属性是离散型的时候,类的先验概率可以通过训练集的各类样本出现的次数来直接计数来估计,例如:A类先验概率=A类样本的数量/样本总数。类条件概率P(B=Bi|A=Ai)可以根据目标类别Ai中属性值等于Bi的训练实例直接计数来估计。(例如:Ai={1,-1},Bi={high,middle,low},P(B=Bi|A=Ai)=P(B=”high”|A=1)、P(B=”middle”|A=1)、……)
- 当属性是连续型的时候,有两种方法来估计属性的类条件概率。
- 第一种是把每一个连续的属性离散化,然后用相应的离散区间替换连续属性值,但这种方法不好控制离散区间划分的粒度,如果粒度太细,就会因为每一个区间中训练记录太少而不能对P(B|A)作出可靠的估计,如果粒度太粗,那么有些区间就会含有来自不同类的记录,因此失去了正确的决策边界。
- 第二种是假设连续变量服从某种概率分布,然后使用训练数据估计分布的参数。一般都假设连续型属性的类条件概率服从的分布是正态分布。
- 正态分布有两个参数,均值µij可以用类Ai的所有训练记录关于Bi的样本均值来估计、同理,(σij)^2可以用这些训练记录的样本方差来估计。
- 计算后验概率(P(Ai)*P(Bi|Ai))/P(Bi)
- 分类
优点
- 方法简单,分类准确率高,速度快,所需估计的参数少
- 对小规模数据表现很好,可以处理多分类任务
- 对于缺失值、极端值不敏感
- 支持“增量式训练”:数据量超过内存可以一批批去训练
缺点
- 需要类条件独立性–特征条件独立性(假设一个属性对给定类的影响独立于其他的属性值,这往往并不成立,比如喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)。
- 如果没有达到类条件独立性,如何解决?答:自己加条件概率
- 对条件概率做了类条件独立性的假设,虽然使模型变得简单,但可能会牺牲一定的分类准确性。
- 需要知道先验概率。
- 通过先验概率和数据来决定后验概率从而决定分类,存在一定错误率
零碎的一些知识点积累与知识补充
R语言e1071包:NaiveBayes函数-贝叶斯分类器算法、klaR包:NaiveBayes函数-贝叶斯分类器算法
(Copyright © https://blog.****.net/s_gy_zetrov. All Rights Reserved)
visitor tracker