文章目录

  • 1. 朴素贝叶斯
  • 2. NB 与 逻辑回归对比

本文为 scikit-learn机器学习(第2版)学习笔记

相关知识参考:《统计学习方法》朴素贝叶斯法(Naive Bayes,NB)

1. 朴素贝叶斯

通过最大概率来预测类:

y=arg max⁡ckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)\color{red} y=\argmax\limits_{c_k} P(Y=c_k) \prod\limits_{j} P(X^{(j)}=x^{(j)}|Y=c_k)y=ck​argmax​P(Y=ck​)j∏​P(X(j)=x(j)∣Y=ck​)

模型假设:

  • 样本独立同分布;

  • 条件独立性 :X(j)X^{(j)}X(j) 之间条件独立
    P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)P(X=x∣Y=ck​)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck​)=∏j=1n​P(X(j)=x(j)∣Y=ck​)

模型变体:

  • 多项式NB:适合于类别特征
  • 高斯NB:适合连续特征,假设每个特征对每个类都符合正态分布
  • 伯努利NB:适合所有特征为二元值的情况

朴素贝叶斯的假设很少为真,但是NB模型可以有效地判别线性可分类

  • 当训练数据缺乏时,性能通常优于判别模型
  • 模型简单,运行速度快,易于实现

2. NB 与 逻辑回归对比

%matplotlib inline
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as pltX, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=11)
# stratify=y, 对标签进行分层抽样,确保数据集之间的样本占比一致lr = LogisticRegression()
nb = GaussianNB()lr_scores = []
nb_scores = []train_sizes = range(10, len(X_train), 10)for train_size in train_sizes:X_slice, _, y_slice, _ = train_test_split(X_train, y_train, train_size=train_size, stratify=y_train, random_state=11)nb.fit(X_slice, y_slice)nb_scores.append(nb.score(X_test, y_test))lr.fit(X_slice, y_slice)lr_scores.append(lr.score(X_test, y_test))plt.plot(train_sizes, nb_scores, label='Naive Bayes')
plt.plot(train_sizes, lr_scores, linestyle='--', label='Logistic Regression')
plt.rcParams['font.sans-serif'] = 'SimHei' # 消除乱码
plt.title("NB vs LogRg 对比")
plt.xlabel("训练样本数")
plt.ylabel("测试集预测准确率")
plt.legend()

  • 在小型数据集上,NB模型性能优于逻辑回归
  • 当训练样本数增多以后,逻辑回归模型性能逐渐提升

[scikit-learn 机器学习] 7. 朴素贝叶斯相关推荐

  1. 朴素贝叶斯 php,PHP实现机器学习之朴素贝叶斯算法详解.pdf

    PHP实实现现机机器器学学习习之之朴朴素素贝贝叶叶斯斯算算法法详详解解 本文实例讲述了PHP实现机器学习之朴素贝叶斯算法.分享给大家供大家参考 具体如下: 机器学习已经在我们的生活中变得随处可见了.比 ...

  2. 【机器学习】朴素贝叶斯、SVM和数据分布检验分析

    [机器学习]朴素贝叶斯.SVM和数据分布检验分析 文章目录 1 朴素贝叶斯 2 SVM2.1 线性可分2.2 最大间隔超平面2.3 SVM 最优化问题 3 数据分布检验方法3.1 数据分布检验3.2 ...

  3. 机器学习:朴素贝叶斯

    机器学习:朴素贝叶斯 1 朴素贝叶斯应用场景 2 朴素贝叶斯相关公式 3 sklearn库中朴素贝叶斯运用 3.1 伯努利朴素贝叶斯 3.2 多项式朴素贝叶斯 3.3 高斯朴素贝叶斯 4 代码 4.1 ...

  4. 机器学习:朴素贝叶斯模型算法原理(含实战案例)

    机器学习:朴素贝叶斯模型算法原理 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页

  5. 机器学习之朴素贝叶斯 1

    机器学习之朴素贝叶斯 1 朴素贝叶斯 2 朴素贝叶斯应用 3 代码实现贝努力朴素贝叶斯 4 代码实现高斯朴素贝叶斯 5 代码实现多项式朴素贝叶斯 6 总结 前言:主要介绍朴素贝叶斯的概念.公式,以及代 ...

  6. 【机器学习算法-朴素贝叶斯、支持向量机】

    机器学习算法-朴素贝叶斯算法 1.朴素贝叶斯算法 2.支持向量机 2.1SVM基本综述 1.朴素贝叶斯算法 朴素贝叶斯是生成模型,需要根据已有的数据求出先验概率. 1.联合概率 2.条件概率 3.相互 ...

  7. 机器学习实战---朴素贝叶斯算法实现+使用K折交叉验证(代码详解+创新)

    <机器学习实战朴素贝叶斯算法实现+使用K折交叉验证> 未经允许,不得擅自转载! 提供数据集如下(永久有效,需要的自行下载): 链接:https://pan.baidu.com/s/1Sv0 ...

  8. 机器学习实战 朴素贝叶斯分类器

    基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...

  9. 机器学习之朴素贝叶斯学习笔记

    朴素贝叶斯 一.概述 朴素贝叶斯算法是有监督的学习算法,解决的是分类问题,如客户是否流失.是否值得投资.信用等级评定等多分类问题.该算法的优点在于简单易懂.学习效率高.在某些领域的分类问题中能够与决策 ...

  10. 机器学习__04__朴素贝叶斯算法

    文章目录 朴素贝叶斯 1.0 概述 2.0 相关原理 2.1后验概率最大化含义 2.2拉普拉斯平滑 3.0 朴素贝叶斯的三种形式和实现 3.1高斯型 3.2多项式型 3.3伯努利型 4.0 中文文本分 ...

最新文章

  1. OpenCV下利用傅里叶变换和逆变换实现图像卷积算法,并附自己对于卷积核/模板核算子的理解
  2. Vue body样式修改
  3. Hibernate备忘录
  4. JVM性能优化之栈区域OOM问题
  5. 三年级下册计算机课程工作计划,三年级下册信息技术教学工作计划
  6. MFC (opencv配置) 应用程序无法正常启动(0xc000007b)请单击“确定关闭应用程序 的解决方法
  7. Android seekbar进度正负值
  8. html网页简单代码
  9. 津津乐道播客网络 实习生/志愿者 招募
  10. 寻找丢失的iexplore进程
  11. Mac 下pyppeteer下载Chromium慢 / pyppeteer下载慢 / Chromium下载慢 / Chromium下载地址
  12. 如何远程唤醒(WOL)主板为技嘉(gigabyte)的B85M-D3H的linux主机
  13. 建筑平面布置与防火防烟分区(二)
  14. 修改android预览分辨率,wm命令使用方法(修改android 分辨率)修改
  15. WPF 实现label换行
  16. DXP 原理图pcb布小知识
  17. Android判断GPS是否开启和让用户打开GPS
  18. 2022年动力电池回收行业研究报告
  19. HBase的一点纪要
  20. 不能位虚拟电脑打开一个新任务

热门文章

  1. mysql my.cnf_如何知道mysql的my.cnf位置
  2. python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...
  3. abap开发注释快捷键_让ABAP开发者更加轻松的若干快捷键
  4. Linux文件属性4——读取目录文件
  5. vim编辑器中如何查找某个词
  6. 微型计算机频繁死机的原因,电脑经常死机是什么原因|电脑经常死机的解决方法...
  7. 谈谈JDK8中的字符串拼接
  8. Sargable 与 谓语下推 (predicate pushdown) 简介
  9. salesforce 零基础学习(五十四)常见异常友好消息提示
  10. Matlab编程学习笔记【待续】