朴素贝叶斯法(Naive Bayes)
一、全概率公式和贝叶斯公式
1、全概率公式
2、贝叶斯公式
二、朴素贝叶斯算法
1、算法简介
贝叶斯分类算法是统计学的一种分类方法,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该对象所属的类。之所以称之为”朴素”,是因为贝叶斯分类只做最原始、最简单的假设:所有的特征之间是统计独立的(假设某样本x有a1,…,aM个属性,那么有P(x)=P(a1,…,aM) = P(a1)*…*P(aM);)
2、算法思想
3、算法流程
(1)常规算法
(2)贝叶斯估计
由于使用极大似然估计可能会出现概率值为0的情况,所以引入拉普拉斯平滑,称为贝叶斯估计。
4、算法demo(常规贝叶斯估计)
#include <iostream>
#include <iomanip>
#include <map>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdio>
using namespace std;int main()
{vector<int> X1 = { 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3 };vector<char> X2 = { 'S', 'M', 'M', 'S', 'S', 'S', 'M', 'M','L', 'L', 'L', 'M', 'M', 'L', 'L' };vector<int> Y = { -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1 };int x1;char x2;cin >> x1;cin.get();cin >> x2;map<string, double> ycount;//记录y = 1和-1的次数map<string, double> x1count1;//记录y=1,-1 ,x1匹配的次数map<string, double> x2count1;//记录y=1,-1 ,x2匹配的次数int ysize = Y.size();for (int i = 0; i < ysize; ++i){if (Y[i] == 1){ycount["y=1"]++;if (X1[i] == x1)x1count1["y=1"]++;if (X2[i] == x2)x2count1["y=1"]++;}else{ycount["y=-1"]++;if (X1[i] == x1)x1count1["y=-1"]++;if (X2[i] == x2)x2count1["y=-1"]++;}}//计算概率double rs1 = ycount["y=1"] / ysize * x1count1["y=1"] / ycount["y=1"] * x2count1["y=1"] / ycount["y=1"];double rs2 = ycount["y=-1"] / ysize * x1count1["y=-1"] / ycount["y=-1"] * x2count1["y=-1"] / ycount["y=-1"];cout << fixed << setprecision(2) << rs1 << " " << rs2 << endl;(rs1 > rs2) ? cout << "y=1" : cout << "y=-1";cout << endl;system("pause");return 0;
}
二、朴素贝叶斯算法的优缺点及应用
1、优点
1. 算法简单;
2. 所需估计参数很少;
3. 对缺失数据不太敏感;
4. 朴素贝叶斯的条件概率计算彼此是独立的,因此特别适于分布式计算;
5. 朴素贝叶斯属于生成式模型,收敛速度将快于判别模型(如逻辑回归);
6. 天然可以处理多分类问题。
2、缺点
1. 因为朴素贝叶斯分类假设样本各个特征之间相互独立,这个假设在实际应用中往往是不成立的,从而影响分类正确性;
2. 不能学习特征间的相互作用;
3. 对输入数据的表达形式很敏感。
3、应用
贝叶斯定理广泛应用于决策分析。先验概率经常是由决策者主观估计的。在选择最佳决策时,会在取得样本信息后计算后验概率以供决策者使用。
用户流失预测,文本分类,垃圾邮件过滤等。
参考:https://blog.csdn.net/Hearthougan/article/details/75174210
https://blog.csdn.net/IDMer/article/details/48809677
https://blog.csdn.net/chunyun0716/article/details/51058948
https://www.cnblogs.com/arachis/p/NB.html
朴素贝叶斯法(Naive Bayes)相关推荐
- 朴素贝叶斯(naive bayes)原理小结
朴素贝叶斯(naive bayes)原理小结 1. 朴素贝叶斯的学习 1.1 基本假设:条件独立性 1.2 朴素贝叶斯分类器 1.3 后验概率的含义 2. 参数估计 2.1 极大似然估计 2.2 贝叶 ...
- 朴素贝叶斯(naive bayes)分类
1. 概念回顾 1.1 条件概率公式 条件概率是指在事件B发生的条件下,事件A发生的概率.条件概率表示为P(A∣B)P(A|B)P(A∣B),读作"A在B发生的条件下发生的概率". ...
- 朴素贝叶斯(Naive Bayes)分类和Gaussian naive Bayes
朴素贝叶斯(Naive Bayes) 参考资料:https://www.cnblogs.com/pinard/p/6069267.html 朴素贝叶斯最关键的就是 (强制认为每种指标都是独立的 ...
- 【机器学习sklearn】高斯朴素贝叶斯 Gaussian naive bayes
贝叶斯Bayes - Thomas Bayes 前言 一.贝叶斯决策论(Bayesian decision theory) 二.实例:高斯朴素贝叶斯 Gaussian Naive Bayes (Gau ...
- python机器学习-朴素贝叶斯(Naive Bayes)模型建立及评估(完整代码+实现效果)
实现功能: python机器学习-朴素贝叶斯(Naive Bayes)模型建立及评估. 实现代码: # 导入需要的库 from warnings import simplefilter simplef ...
- 朴素贝叶斯(Naive Bayes):鸢尾花分类项目(不调库,手工推)
一.数据来源 1.数据来源:kaggle 2.数据样式 通过对数据"萼片.花瓣的长度.宽度(sepal_length.sepal_width.petal_length.petal_width ...
- 朴素贝叶斯(Naive Bayes)(原理+Python实现)
朴素贝叶斯(Naive Bayes)(原理+Python实现) 创作背景 算法分类 生成类算法 判别类算法 区别 知识补充 朴素贝叶斯算法 举个栗子 求解思路 求解过程(数学计算) 代码实现 自己实现 ...
- python贝叶斯模型_【机器学习速成宝典】模型篇05朴素贝叶斯【Naive Bayes】(Python版)...
目录 先验概率与后验概率 条件概率公式.全概率公式.贝叶斯公式 什么是朴素贝叶斯(Naive Bayes) 拉普拉斯平滑(Laplace Smoothing) 应用:遇到连续变量怎么办?(多项式分布, ...
- 机器学习——朴素贝叶斯(Naive Bayes)详解及其python仿真
参考视频与文献: https://www.bilibili.com/video/BV1oX4y137p9?spm_id_from=333.999.0.0&vd_source=77c874a50 ...
- 朴素贝叶斯(Naive Bayes)原理+编程实现拉普拉斯修正的朴素贝叶斯分类器
贝叶斯方法与朴素贝叶斯 1.生成模型与判别模型 2.贝叶斯 2.1贝叶斯公式 2.2贝叶斯方法 3朴素贝叶斯 3.1条件独立性假设 3.2朴素贝叶斯Naive在何处? 3.3朴素贝叶斯的三种模型 3. ...
最新文章
- “Can’t be opened because Apple cannot check it for malicious software“ 解决方案
- 一个函数两个return
- Python到底是什么?Python发展前景好吗?
- oracle登陆认证方式
- linux ps画图,PhotoGIMP:让Linux下的GIMP交互体验就像Photoshop
- 常用z反变换公式表_高中三角函数公式推理amp;记忆
- 不朽的浪漫网站服务器,浪漫人族TOD专访 虫族强大让我震惊
- 微信公众号迁移,认证; 名称触发商标怎么办
- 【SPRD CAMERA】1 HAL层初始化流程
- TFT-LCD液晶显示器的工作原理
- OpenStack核心组件原理与应用之Keystone
- 面向对象的C++了解
- 2022年初级审计师考试冲刺试题及答案
- vue里的axios获取本地的json数据
- 七彩视界开源全解公益版,全新后台非常漂亮,全网首发!
- 计算机网络体系结构-移动IP
- 深度学习中EMA的使用场景
- 大数据分析 - Taylor展开式的应用 - 指数函数 Exp(x)
- 解决UEditor超出最大字数后只提示不限制的问题
- DL-LN33使用笔记
热门文章
- Excel:快速填充1000行(自定义)数据
- [Usaco2016 Jan]Angry Cows
- matlab 矩阵正交,matlab里矩阵的正交分解怎么表示
- PMP项目管理-项目人力资源管理(5)
- 激烈竞标、P2P画皮、梯队站位,2017中国智能投顾之江湖风云
- 影响网站关键词排名优化的因素及解决方案
- Nginx Ingress Controller 部署
- 维珍航空-理查德·布兰森
- [海康相机] 连接相机失败:未安装USB3驱动或驱动无效
- Open Cluster Management 多集群管理