假设特征的先验概率为多项式分布,多项式朴素贝叶斯分类器适用于具有离散特征的分类(例如,用于文本分类的字数统计)。多项式分布通常需要整数特征计数
from sklearn.naive_bayes import MultinomialNB
MultinomialNB(*, alpha=1.0, fit_prior=True, class_prior=None)
Parameters
alpha : float, default=1.0
贝叶斯估计所添加的参数,alpha=1.0时,为拉普拉斯平滑
fit_prior : bool, default=True
表示是否要学习先验概率,如果为False,则所有样本输出时使用统一的类别先验概率(1 / 类别数)。
如果为True时,则可以利用第三个参数class_piror输入先验概率,或者不输入第三个参数,可以从训练集中自己计算先验概率,此时,第k个类别的先验概率=第k个类别样本数 / 总的样本数
class_prior : array-like of shape (n_classes,), default=None
该类的先验概率。
如果指定了先验,则不会根据数据进行调整。
Attributes
class_count_ : ndarray of shape (n_classes,)
拟合期间每个类别遇到的样本数
class_log_prior_ :ndarray of shape (n_classes, )
每个类的平滑经验对数概率
classes_ : ndarray of shape (n_classes,)
分类器已知的类标签
feature_count_ : ndarray of shape (n_classes, n_features)
拟合期间每个(类,特征)遇到的样本数。
feature_log_prob_ : ndarray of shape (n_classes, n_features)
给定一类特征的经验对数概率,P(x_i|y)
n_features_ : int
每个样本的特征数
Methods
fit(X, y[, sample_weight])
根据X,y拟合朴素贝叶斯分类器
get_params([deep])
获得这个估计器的参数
partial_fit(X, y[, classes, sample_weight])
根据一批样本在线更新参数
predict(X)
对测试向量X进行分类。
predict_log_proba(X)
返回测试向量X的对数概率估计
predict_proba(X)
返回测试向量X的概率估计
score(X, y[, sample_weight])
返回给定测试数据和标签上的准确率
set_params(**params)
设置此估算器的参数。
>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, size=(6, 100))
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB()
>>> clf.fit(X, y)
MultinomialNB()
>>> print(clf.predict(X[2:3]))
[3]
假设先验概率为高斯分布,GaussianNB为高斯朴素贝叶斯,可以通过partial_fit在线更新模型参数。
from sklearn.naive_bayes import GaussianNB
GaussianNB(*, priors=None, var_smoothing=1e-09)
Parameters
priors : array-like of shape (n_classes,)
该类的先验概率。如果指定,则先验数据不会根据数据进行调整
var_smoothing : float, default=1e-9
所有特征的最大方差部分,已添加到方差中以提高计算稳定性。
Attributes
class_count_ : ndarray of shape (n_classes,)
每个类中观察到的训练样本数
class_prior_ : ndarray of shape (n_classes,)
每类的概率
classes_ : ndarray of shape (n_classes,)
分类器已知的类标签
epsilon_ : float
方差绝对相加值
sigma_ : ndarray of shape (n_classes, n_features)
每个类的每个特征的方差
theta_ : ndarray of shape (n_classes, n_features)
每个类的每个特征的均值
Methods
同上
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> Y = np.array([1, 1, 1, 2, 2, 2])
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)
GaussianNB()
>>> print(clf.predict([[-0.8, -1]]))
[1]
>>> clf_pf = GaussianNB()
>>> clf_pf.partial_fit(X, Y, np.unique(Y))
GaussianNB()
>>> print(clf_pf.predict([[-0.8, -1]]))
[1]
先验为伯努利分布的朴素贝叶斯;像MultinomialNB一样,此分类器适用于离散数据。区别在于,虽然MultinomialNB可以处理出现次数,但BernoulliNB是为二进制/布尔功能而设计的。
from sklearn.naive_bayes import BernoulliNB
BernoulliNB(*, alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
Parameters
alpha : float, default=1.0
贝叶斯估计所添加的参数,alpha=1.0时,为拉普拉斯平滑
binarize : float or None, default=0.0
用于将样本特征二值化(映射为布尔值)的阈值。如果为None,则假定输入已经由二进制向量组成
fit_prior : bool, default=True
表示是否要学习先验概率,如果为False,则所有样本输出时使用统一的类别先验概率(1 / 类别数)。
如果为True时,则可以利用第三个参数class_piror输入先验概率,或者不输入第三个参数,可以从训练集中自己计算先验概率,
class_prior : array-like of shape (n_classes,), default=None
该类的先验概率。
如果指定了先验,则不会根据数据进行调整。
Attributes
其余与MultinomialNB一样
coef_ : ndarray of shape (n_classes, n_features)
镜像feature_log_prob_将伯努利解释为线性模型
intercept_ : ndarray of shape (n_classes,)
镜像class_log_prior_将伯努利解释为线性模型
Methods
同上
>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB()
>>> print(clf.predict(X[2:3]))
[3]
如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言!