朴素贝叶斯方法

一般来说训练时的一个实例有很多属性用一个<a1,a2,....,an>来表示一个数据,那么此时根据最大后验概率的计算公式可以得出:

其中, H 是目标值集合。 估计每个 P(hi)很容易, 只要计算每个目标值 hi出现在训练数据

中的频率就可以。 但是如果要如此估计所有的 P( a1 ,a2 ,...,an hi)项, 则必须计算 a1 ,a2 ,...,an的所有可能取值组合, 再乘以可能的目标值数量。 假设一个实例有 10 个属性, 每个属性有3 个可能取值, 而目标集合中有 5 个候选目标, 那么 P(a1 ,a2 ,...,an hi)项就有 5×3^10个之多。对于现实系统这样显然不行。 因为, 首先我们很难得到一个容量足够大的样本; 其次即使样本足够多, 进行统计的时间复杂度也是无法忍受的。 所以, 贝叶斯最优假设 (包括贝叶斯最优分类器) 不适合于高维数据。

所以提出了朴素贝叶斯和贝叶斯网络来解决高维数据问题。下面介绍朴素贝叶斯方法。

朴素贝叶斯方法假设如下:对于目标值, 数据各属性之间是相互条件独立的, 即 a1 ,a2 ,...,an的联合概率等于每个单独属性的概率乘积。

即朴素贝叶斯方法公式为:

将计算数据缩小到了5x3x10。当各个属性条件独立性满足时,朴素贝叶斯分类结果等于最大后验概率分类结果。

相关推荐
测试-鹏哥9 分钟前
全新驾驶舱功能助力ITP测试平台腾飞
python·测试工具·压力测试
wxin_VXbishe30 分钟前
springboot居家养老管理系统-计算机毕业设计源码55953
java·c++·spring boot·python·spring·django·php
Hi_kenyon30 分钟前
Plotly高级可视化库的使用方法(二)
python·plotly
互亿无线明明32 分钟前
国际金融短信:如何为跨境金融业务构建稳定安全的消息通知链路?
java·python·安全·eclipse·django·virtualenv·pygame
我送炭你添花36 分钟前
Pelco KBD300A 模拟器:05+1.本项目中的链式调用类设计详解
python·自动化·运维开发
ULTRA??41 分钟前
归并排序算法实现,kotlin,c++,python
c++·python·kotlin
ytttr87341 分钟前
matlab实现多标签K近邻(ML-KNN)算法
算法·机器学习·matlab
一招定胜负1 小时前
逻辑回归调优三板斧:参数调整、阈值设定、数据集平衡
算法·机器学习·逻辑回归
豆约翰1 小时前
Z字形扫描ccf
java·开发语言·算法
Tipriest_1 小时前
C++ Python使用常用库时如何做欧拉角 ⇄ 四元数转换
c++·python·四元数·欧拉角