sklearn学习笔记5:朴素贝叶斯
admin
2024-03-25 05:28:41
0

sklearn为我们提供了四个朴素贝叶斯的分类器

naive_bayes.BernoulliNB:伯努利分布下的朴素贝叶斯

naive_bayes.GaussianNB:高斯分布下的朴素贝叶斯

naive_bayes.MultinomialNB:多项式分布下的朴素贝叶斯

naive_bayes.ComplementNB:补集朴素贝叶斯

1.高斯朴素贝叶斯GaussianNB

这个类包含两个参数

prior:可输入任何类数组结构,表示类的先验概率。如果指定,则不根据数据调整先验,如果不指定,则自行根据数据计算先验概率P(Y)

var_smoothing:浮点数,可不填。在估计方差时,为了追求估计的稳定性,将所有特征的方差中最大的方差以某个比例添加到估计的方差中,这个比例,由var_smoothing参数控制

因为过于简单也意味着贝叶斯没有太多的参数可以调整,因此贝叶斯算法的成长空间并不大,如果贝叶斯算法的效果不是很理想,我们一般会考虑换模型

2.概率类模型的评估指标

①布里尔分数Brier Score

范围是从0到1,分数越高则预测结果越差劲,校准程度越差,因此布里尔分数越接近0越好

②对数似然函数Log Loss

由于是损失,因此对数似然函数的取值越小,则证明概率估计越准确,模型越理想,值得注意的是,对数损失只能用于评估分类型模型

那什么时候用对数似然,什么时候使用布里尔分数?

优先使用对数似然:要对比多个模型,或者衡量模型的不同变化

优先使用布里尔分数:衡量单一模型的表现

③可靠性曲线Reliability Curve

这是一条以预测概率为横坐标,真实标签为纵坐标的曲线。我们希望预测概率和真实值越接近越好,最好两者相等,因此一个模型/算法的概率校准曲线越靠近对角线越好

通常来说,曲线用于二分类的情况最多

④预测概率的直方图

以样本的预测概率分箱后的结果为横坐标,每个箱中的样本数量为纵坐标的一个图像,这里的分箱是将预测概率均匀分为一个个区间

⑤校准可靠性曲线

CalibratedClassifierCV:没有接口decision_function,要查看这个类下校准过后的模型生成的概率,必须调用predict_proba接口

base_estimator:需要校准其输出决策功能的分类器,必须存在predict_proba或decision_function接口。如果参数cv=prefit,分类器必须已经拟合数据完毕

cv:整数,确定交叉验证的策略

method:进行概率校准的方法,可输入sigmoid或isotonic

3.多项式朴素贝叶斯

alpha:浮点数,可不填。如果设置为0表示完全没有平滑选项。但是需要注意的是,平滑相当于认为给概率加上一些噪音,因此α设置得越大,多项式朴素贝叶斯的精确性会越低(虽然影响不是非常大),布里尔分数也会逐渐升高

fit_prior:布尔值,可不填。如果设置为False,则不使用先验概率,而使用统一先验概率

class_prior:形似数组的结构,可不填。如果没有给出具体的先验概率则自动根据数据来进行计算

4.伯努利朴素贝叶斯

伯努利朴素贝叶斯与多项式朴素贝叶斯非常相似,都常用于处理文本分类数据。但由于伯努利朴素贝叶斯是处理二项分布,所以它更在意的是“存在与否”,而不是“出现多少次”这样的次数或频率

在文本分类的情况下,伯努利朴素贝叶斯可以使用单词出现向量来训练分类器,文档较短的数据集上,伯努利朴素贝叶斯效果会更好,如果时间允许,两种模型建议都试试看

5.补集朴素贝叶斯

补集朴素贝叶斯是标准多项式朴素贝叶斯算法的改进,比普通多项式朴素贝叶斯更稳定,并且它特别适合于样本不平衡的数据集

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...