a*算法的优缺点_轻松理解机器学习算法-朴素贝叶斯
1、预备知识
贝叶斯定理(Bayes’ theorem)是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关。通常事件A在事件B发生的条件下的概率,与事件B在事件A发生的条件下的概率是不一样的;然而这两种是有确定关系的,这种关系就是贝叶斯定理:
P(A|B) = ( P(A) * P(B|A) ) / P(B)
从公式来看,我们需要首先了解3个基本概念:
1)先验概率
通常把P(A)称为“先验概率”(Prior probability),即在不知道B事件发生的前提下,对A事件发生概率的一个主观判断。
2)似然函数
P(B|A)/P(B)称为“似然函数”(Likelyhood),即对新事件B的发生调整,作用是,使得先验概率更接近真实概率。
- 如果“似然函数”P(B|A)/P(B)>1,意味着“先验概率”被增强,事件A的发生的可能性变大;
- 如果“似然函数”P(B|A)/P(B)=1,意味着事件B无助于判断事件A的可能性;
- 如果“似然函数”P(B|A)/P(B)<1,意味着“先验概率”被削弱,事件A的可能性变小。
3)后验概率
P(A|B)称为“后验概率”(Posterior probability),即在事件B发生之后,对事件A概率的重新评估。
因此,贝叶斯定理为:后验概率=先验概率*似然函数。
2、朴素贝叶斯算法
朴素贝叶斯算法是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,是因为它假设每一个输入变量之间是独立的。
朴素贝叶斯模型由两种类型的概率组成:
- 每个类别的概率P(Cj)
- 每个属性的条件概率P(Ai|Cj)
朴素贝叶斯的公式如下:
P(Cause,Effect1,Effect2,Effect3….Effectn)=P(Cause)∏nP(Effecti|Cause)
为了训练朴素贝叶斯模型,需要先给出训练数据以及这些数据对应的分类。
3、贝叶斯原理、贝叶斯分类及朴素贝叶斯之间的关系
贝叶斯原理是最大的概念,它解决了概率论中“逆向概率”的问题,在这个理论基础上,人们设计出了贝叶斯分类器。朴素贝叶斯分类是贝叶斯分类器中的一种,也是最简单,最常用的分类器。朴素贝叶斯之所以朴素是因为它假设属性是相互独立的,因此对实际情况有所约束,如果属性之间存在关联,分类准确率会降低。不过好在对于大部分情况下,朴素贝叶斯的分类效果都不错。
4、朴素贝叶斯分类流程
朴素贝叶斯分类需要三个步骤:
- 准备阶段
在这个阶段需要确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分数据进行分类,形成训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工参与的,其质量对整个过程有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。
- 训练阶段
这个阶段生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率。输入是特征属性和训练样本,输出是分类器。
- 应用阶段
这个阶段是使用分类器对新数据进行分类。输入是分类器和新数据,输出是新数据的分类结果。
5、朴素贝叶斯算法的优缺点
优点:
- 算法基于古典数学理论,分类效率稳定;
- 适用于小规模数据,能够处理多分类任务;
- 算法简单,对缺失数据不敏感。
缺点:
- 在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好;
- 需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳;
- 通常通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率;
- 对输入数据的表达形式很敏感。
(本文部分内容来自https://ixyzero.com/blog/archives/4524.html和https://joshuaqyh.github.io/)
a*算法的优缺点_轻松理解机器学习算法-朴素贝叶斯相关推荐
- 机器学习之朴素贝叶斯算法原理
朴素贝叶斯(naive Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法.它和其他绝大多数的分类算法都不同. 对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方 ...
- 朴素贝叶斯 php,PHP实现机器学习之朴素贝叶斯算法详解.pdf
PHP实实现现机机器器学学习习之之朴朴素素贝贝叶叶斯斯算算法法详详解解 本文实例讲述了PHP实现机器学习之朴素贝叶斯算法.分享给大家供大家参考 具体如下: 机器学习已经在我们的生活中变得随处可见了.比 ...
- 机器学习:朴素贝叶斯模型算法原理(含实战案例)
机器学习:朴素贝叶斯模型算法原理 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页
- 机器学习实战---朴素贝叶斯算法实现+使用K折交叉验证(代码详解+创新)
<机器学习实战朴素贝叶斯算法实现+使用K折交叉验证> 未经允许,不得擅自转载! 提供数据集如下(永久有效,需要的自行下载): 链接:https://pan.baidu.com/s/1Sv0 ...
- 【机器学习】朴素贝叶斯、SVM和数据分布检验分析
[机器学习]朴素贝叶斯.SVM和数据分布检验分析 文章目录 1 朴素贝叶斯 2 SVM2.1 线性可分2.2 最大间隔超平面2.3 SVM 最优化问题 3 数据分布检验方法3.1 数据分布检验3.2 ...
- 【机器学习】--机器学习之朴素贝叶斯从初始到应用
一.前述 机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先前事件的有关数据来估计未来事件发生的概率. 二.具体 1.背景--贝叶斯定理引入 ...
- 机器学习实战 朴素贝叶斯分类器
基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...
- 机器学习:朴素贝叶斯
机器学习:朴素贝叶斯 1 朴素贝叶斯应用场景 2 朴素贝叶斯相关公式 3 sklearn库中朴素贝叶斯运用 3.1 伯努利朴素贝叶斯 3.2 多项式朴素贝叶斯 3.3 高斯朴素贝叶斯 4 代码 4.1 ...
- 机器学习之朴素贝叶斯 1
机器学习之朴素贝叶斯 1 朴素贝叶斯 2 朴素贝叶斯应用 3 代码实现贝努力朴素贝叶斯 4 代码实现高斯朴素贝叶斯 5 代码实现多项式朴素贝叶斯 6 总结 前言:主要介绍朴素贝叶斯的概念.公式,以及代 ...
最新文章
- API pytorch tensorflow
- 大家有没有推荐不错开源的小程序商城?这几个不要错过
- 面试题25: 合并两个排序的链表
- cwc云莱特链_CWC的完整形式是什么?
- FileOutputStream 类 和 FileInputStream类的简单介绍,附代码演示。以及一个复制媒体文件的小程序。
- _Linux后台开发6大常用的开源库,让你在同行中脱颖而出
- (键盘)代码 19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备 解决方法...
- 第三季-第13课-无名管道通讯编程
- java中加权滤波怎么用_方向加权中值滤波算法-The Directional Medial Filtering with Weights...
- 关于js函数传参的问题
- win10+Ubuntu双系统下如何完美卸载Ubuntu系统
- 问题解决之 Win10下 word 文件和 ppt 文件打开时遇到错误
- 2020大疆校招B卷第二题
- 六大类二叉树面试题汇总解答
- 柯伊玟导演作品《黑暗迷踪》顺利杀青
- Python编程:通过百度地图接口抓取机构的地址和电话信息
- win7如何开启Telnet服务
- python科学计算教程视频_【P14】Python科学计算与图形渲染库视频课程视频教程 it教程...
- 大数据培训机构,主要都学习哪些课程?
- meta http-equiv=X-UA-Compatible content=ie=edge的意思