朴素贝叶斯算法详解及python代码实现
朴素贝叶斯算法
- 算法原理
- 对数据的要求
- 算法的优缺点
- 算法需要注意的点
- 算法实现(python)(待更.......)
算法原理
P(Ck∣xi)=p(xi∣ck)∗p(ck)p(xi)=p(x1∣ck)∗p(x2∣ck)....p(ck)p(x1)p(x2)....P(C_k|x_i)=\frac{p(x_i|c_k)*p(c_k)}{p(x_i)}=\frac{p(x_1|c_k)*p(x_2|c_k)....p(c_k)}{p(x_1)p(x_2)....}P(Ck∣xi)=p(xi)p(xi∣ck)∗p(ck)=p(x1)p(x2)....p(x1∣ck)∗p(x2∣ck)....p(ck)(条件是独立同分布)(原理给出先验求后验)
对数据的要求
1.能处理 缺失值
2. 需要离散化连续性数据
3. 数据不需要标准化或者归一化处理
算法的优缺点
一、优点
1、有坚实的数学基础,以及稳定的分类效率
2、对小规模数据表现良好,能处理多分类问题,适合增量学习
3、 对于结果解释容易理解
4、能够处理缺失值
一、缺点
1、 对于输入数据敏感(离散、连续…)
2、 需要计算先验概率,分类决策存在错误率
3.、模型假设属性之间相互独立,但这个假设在实际中往往不成立
算法需要注意的点
1. 朴素贝叶斯为啥被称为朴素?
朴素体现在每个特征都是独立同分布(假设)避免求解时面临组合爆炸
2. p(xi∣ck)=0p(x_i|c_k)=0p(xi∣ck)=0时怎么办(或者特征没有取到样例)?
采用拉普拉斯平滑p(y=ck)=∑i=1NI(yi=ck)+λN+kλp(y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+k\lambda}p(y=ck)=N+kλ∑i=1NI(yi=ck)+λ
3. 为什么独立性假设在实际中很难成立,但朴素贝叶斯效果仍很好?
1、建模之前排除了特征之间的共线性
2、对于分类任务,只要类别条件概率排序正确,无需精准P
3、如果属性间依赖对所有类别影响相同,或影响相互抵消,最后影响不大
算法实现(python)(待更…)
import numpy as np
import pandas as pd
from sklearn.naive_bayes import GaussianNB
i
mport os
os.chdir(r'E:/wyz/Desktop/data/')
#读取数据
data = pd.read_excel('lw.xlsx',sheet_name = 'Sheet2')
#数据切分
y = data_model['target']
x = data_model.drop('target', axis=1)
x_train, x_test, y_train, y_test = train_test_split(x, y,random_state=0,train_size=0.7)
#训练
clf = GaussianNB()
clf = clf.fit(x_train, y_train)
#预测
y_pred=clf.predict(x_test)
朴素贝叶斯算法详解及python代码实现相关推荐
- 朴素贝叶斯 php,PHP实现机器学习之朴素贝叶斯算法详解.pdf
PHP实实现现机机器器学学习习之之朴朴素素贝贝叶叶斯斯算算法法详详解解 本文实例讲述了PHP实现机器学习之朴素贝叶斯算法.分享给大家供大家参考 具体如下: 机器学习已经在我们的生活中变得随处可见了.比 ...
- 机器学习之朴素贝叶斯算法详解
文章目录 一. 朴素贝叶斯 1.概率基础知识: 2.朴素贝叶斯模型流程: ①计算流程: ②三个阶段: 3.拉普拉斯平滑 二. 半朴素贝叶斯分类器 概念 三.朴素贝叶斯的面试题 一. 朴素贝叶斯 1.概 ...
- kmeans算法详解和python代码实现
kmeans算法详解和python代码实现 kmeans算法 无监督学习和监督学习 监督学习: 是通过已知类别的样本分类器的参数,来达到所要求性能的过程 简单来说,就是让计算机去学习我们已经创建好了的 ...
- 编辑距离算法详解和python代码
编辑距离(Levenshtein Distance)算法详解和python代码 最近做NLP用到了编辑距离,网上学习了很多,看到很多博客写的有问题,这里做一个编辑距离的算法介绍,步骤和多种python ...
- 【机器学习】贝叶斯算法详解 + 公式推导 + 垃圾邮件过滤实战 + Python代码实现
文章目录 一.贝叶斯简介 二.贝叶斯公式推导 三.拼写纠正案例 四.垃圾邮件过滤案例 4.1 问题描述 4.2 朴素贝叶斯引入 五.基于朴素贝叶斯的垃圾邮件过滤实战 5.1 导入相关库 5.2 邮件数 ...
- 机器学习最易懂之贝叶斯模型详解与python实现
文章目录 0.预备知识 0.1 先验概率.条件概率.后验概率 0.2 贝叶斯公式 0.3 极大似然估计 0.4 生成模型与判别模型 1.朴素贝叶斯模型 1.1 朴素贝叶斯的符号说明 1.2 朴素贝叶斯 ...
- 机器学习:朴素贝叶斯算法+中文情感分类+python
朴素贝叶斯中文情感分类 1.写在前面 朴素贝叶斯算法理论在很多博客上已经解释的很详细了,本文就不再叙述,本文注重于算法的应用以及编程实现,在读取前人的博客以及他们的项目应用,本人结合书本<机器学 ...
- python实现朴素贝叶斯算法_机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)...
在这里,我们使用一份皮马印第安女性的医学数据,用来预测其是否会得糖尿病.文件一共有768个样本,我们先剔除缺失值,然后选出20%的样本作为测试样本. 特征分别是: 怀孕次数 口服葡萄糖耐量试验中血浆葡 ...
- python贝叶斯算法的论文_朴素贝叶斯算法从入门到Python实践
1,前言 很久不发文章,整理些干货,希望相互学习吧.进入主题,本文主要时说的为朴素贝叶斯分类算法.与逻辑回归,决策树一样,是较为广泛使用的有监督分类算法,简单且易于理解(号称十大数据挖掘算法中最简单的 ...
最新文章
- 关于js中cookie的认识
- 加密连接工具Cryptcat
- PHP----------PHP自身的性能优化注意事项
- C++中STL和容器、迭代器、算法之间的关系
- java xor_java 简单xor加密
- 查看ssh端口号_萌新云服务器折腾记-SSH配置
- linux gui编程语言,使用 Red 语言编写 GUI 应用程序
- linux io阻塞问题
- 【算法笔记】B1058 选择题
- Java对象toString()方法
- Civil3D二次开发常见问题总结
- Centos-Nginx-Docker 入门(一)
- 开会不要带没用的记事本、笔
- CSS使图像等比例缩放兼容IE6、IE7、FF
- 悉尼科技大学量子计算_世界排名前12位的量子计算研究型大学
- I Love ces(大小写字母转换 金马五校赛-上海大学)
- 震坤行工业超市研发效能提升之路 | 云效
- android开发双击唤醒屏幕,安卓手机双击唤醒原理是什么 安卓双击唤醒原理介绍...
- Kafka Shell Lag
- 东数西算下,液冷数据中心为何日趋重要?
热门文章
- 22行满分代码:L1-054 福到了 (15分)
- QT Creator应用程序开发——QT程序设计基本知识
- shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)
- html网络,HTML—构建网络
- 多维数组的索引与切片_Numpy库使用入门(二)数据的索引和切片
- android 打开免打扰模式_三星S10+免root也能完美使用Xp框架?这款神器你必须要知道...
- RT-Thread pin设备驱动代码结构剖析
- ubuntu建立向windows一样的快捷方式
- springboot socket服务端_从零开始学SpringBoot之Spring Boot WebSocket:编码分析
- linux内核irq,linux-kernel – do_IRQ中的中断向量和irq映射