当前位置: 首页 > 面试题库 >

如何指定scikit-learn的朴素贝叶斯的先验概率

郎俊雅
2023-03-14
问题内容

我正在将scikit-learn机器学习库(Python)用于机器学习项目。我使用的算法之一是高斯朴素贝叶斯实现。 GaussianNB()
函数的属性之一如下:

class_prior_ : array, shape (n_classes,)

我想手动更改该类,因为我使用的数据非常不正确,并且召回其中一个类非常重要。通过为该类别分配较高的先验概率,召回率应会增加。

但是,我不知道如何正确设置属性。我已经阅读了以下主题,但他们的答案对我不起作用。

如何在scikit-learn中为Naive Bayesclf手动设置先验概率?

我怎么知道我先给sci-kit学习什么?(朴素贝叶斯分类器。)

这是我的代码:

gnb = GaussianNB()
gnb.class_prior_ = [0.1, 0.9]
gnb.fit(data.XTrain, yTrain)
yPredicted = gnb.predict(data.XTest)

我认为这是正确的语法,我可以通过使用值来找出哪个类属于数组中的哪个位置,但结果保持不变。也没有给出错误。

从scikit-learn库设置 GaussianNB 算法的属性的正确方法是什么?

链接到GaussianNB的scikit文档


问题答案:

在scikit-learn中实现的GaussianNB()不允许您事先设置类。如果阅读在线文档,则会看到.class_prior_是 属性 而非
参数 。一旦安装了GaussianNB(),就可以访问class_prior_属性。它是通过简单地计算训练样本中不同标签的数量来计算的。

from sklearn.datasets import make_classification
from sklearn.naive_bayes import GaussianNB


# simulate data with unbalanced weights
X, y = make_classification(n_samples=1000, weights=[0.1, 0.9])
# your GNB estimator
gnb = GaussianNB()
gnb.fit(X, y)

gnb.class_prior_
Out[168]: array([ 0.105,  0.895])

gnb.get_params()
Out[169]: {}

您会看到估算器足够聪明,可以考虑不平衡权重问题。因此,您不必手动指定先验条件。



 类似资料:
  • 还是让我们回到运动员的例子。如果我问你Brittney Griner的运动项目是什么,她有6尺8寸高,207磅重,你会说“篮球”;我再问你对此分类的准确度有多少信心,你会回答“非常有信心”。 我再问你Heather Zurich,6尺1寸高,重176磅,你可能就不能确定地说她是打篮球的了,至少不会像之前判定Brittney那样肯定。因为从Heather的身高体重来看她也有可能是跑马拉松的。 最后,

  • 我们会在这章探索朴素贝叶斯分类算法,使用概率密度函数来处理数值型数据。 内容: 朴素贝叶斯 微软购物车 贝叶斯法则 为什么我们需要贝叶斯法则? i100、i500健康手环 使用Python编写朴素贝叶斯分类器 共和党还是民主党 数值型数据 使用Python实现

  • 在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)得出。 朴素贝叶斯

  • 朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。本章首先介绍贝叶斯分类算法的基础——贝叶斯定理。最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: 朴素贝叶斯分类。 贝叶斯理论 & 条件概率 贝叶斯理论 我们现在有一个数据集,它由两类数据组成,数据分布如下图所示: 我们现在用 p1(x,y) 表示数据点 (x,y) 属于类别 1(图中用圆点表示

  • 贝叶斯法则描述了P(h)、P(h|D)、P(D)、以及P(D|h)这四个概率之间的关系: 这个公式是贝叶斯方法论的基石。在数据挖掘中,我们通常会使用这个公式去判别不同事件之间的关系。 我们可以计算得到在某些条件下这位运动员是从事体操、马拉松、还是篮球项目的;也可以计算得到某些条件下这位客户是否会购买Sencha绿茶等。我们会通过计算不同事件的概率来得出结论。 比如说我们要决定是否给一位客户展示Se

  • 校验者: @Kyrie 翻译者: @TWITCH 朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,即“简单”地假设每对特征之间相互独立。 给定一个类别 和一个从 到 的相关的特征向量, 贝叶斯定理阐述了以下关系: ![P(y \mid x_1, \dots, x_n) = \frac{P(y) P(x_1, \dots x_n \mid y)}