博客
关于我
中文翻译sklearn Naive Bayes
阅读量:343 次
发布时间:2019-03-04

本文共 2646 字,大约阅读时间需要 8 分钟。

  • 官方文档

    Naive Bayes方法是一系列采用基于朴素假设(类变量对应的属性值彼此条件独立)的贝叶斯定理的监督学习算法。

    贝叶斯定理申明如下关系,给定的类变量 y y y和从属的特征向量 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn:
    P ( y ∣ x 1 , x 2 , . . . x n ) = P ( y ) P ( x 1 , x 2 , . . . x n ∣ y ) P ( x 1 , x 2 , . . . x n ) P(y|x_1,x_2,...x_n)=\frac{P(y)P(x_1,x_2,...x_n|y)}{P(x_1,x_2,...x_n)} P(yx1,x2,...xn)=P(x1,x2,...xn)P(y)P(x1,x2,...xny)
    采用如下朴素的条件独立性假设:
    P ( x i ∣ y , x 1 , . . . x i − 1 , x i + 1 , . . . , x n ) = p ( x i ∣ y ) P(x_i|y,x_1,...x_{i-1},x_{i+1},...,x_n) = p(x_i|y) P(xiy,x1,...xi1,xi+1,...,xn)=p(xiy)
    对于所有的 i i i,这种关系可以简化为:
    P ( y ∣ x 1 , . . . , x n ) = P ( y ) ∏ i = 1 n P ( x i ∣ y ) P ( x 1 , . . . , x n ) P(y|x_1,...,x_n)=\frac{P(y)\prod_{i=1}^nP(x_i|y)}{P(x_1,...,x_n)} P(yx1,...,xn)=P(x1,...,xn)P(y)i=1nP(xiy)
    因为 P ( x 1 , . . . , x n ) P(x_1,...,x_n) P(x1,...,xn)是给定的常数,我们可以采用如下的分类规则:
    P ( y ∣ x 1 , . . . , x n ) ∈ P ( y ) ∏ i = 1 n P ( x i ∣ y ) ⇓ y ^ = a r g m a x y P ( y ) ∏ i = 1 n P ( x i ∣ y ) P(y|x_1,...,x_n) \in P(y)\prod_{i=1}^nP(x_i|y) \\ \Downarrow \\ \hat{y} = {argmax}_{y}P(y)\prod_{i=1}^nP(x_i|y) P(yx1,...,xn)P(y)i=1nP(xiy)y^=argmaxyP(y)i=1nP(xiy)
    我们可以用MAP估计方法来估计 P ( y ) P(y) P(y) P ( x i ∣ y ) P(x_i|y) P(xiy),前者就是类别 y y y在训练集中的相对频率。

    不同的朴素贝叶斯分类器区别主要在于对待 P ( x i ∣ y ) P(x_i|y) P(xiy)分布的不同假设。

    尽管假设看起来相当简单,但是朴素贝叶斯分类器在真实生活中许多方面都表现良好,特别是文本分类和垃圾邮件过滤。他们只需要小规模的训练数据就可以估计必要的参数。(之于NB作用显著的原因,以及适用的数据类型,参见附录)

    相比于复杂的方法,NB学习器和分类器出奇的快,类条件特征分布的去耦合意味着每个分布可以作为一维分布独立评估。这反过来有助于缓解维数灾难带来的问题阻塞。

    尽管NB是一个较好的分类器(classifier),但却是一个差的评估器(estimator),所以对于predict_proba 给出的概率不要太当真。

    References:

    • H. Zhang (2004). Proc. FLAIRS.
  • Gaussian Naive Bayes

    采用GaussianNB算法用于分类。假设特征的似然服从高斯分布:
    P ( x i ∣ y ) = 1 2 π σ y 2 e x p ( − ( x i − μ y ) 2 2 σ y 2 ) P(x_i|y)=\frac{1}{\sqrt{2\pi \sigma^2_y}}exp(-\frac{(x_i-\mu_y)^2}{2\sigma^2_y}) P(xiy)=2πσy2 1exp(2σy2(xiμy)2)
    σ y \sigma_y σy μ y \mu_y μy采用最大似然估计

  • Multinomial Naive Bayes

    采用多项式分布,是用于文本分类的两大经典NB变体之一,每个类 y y y的分布被向量 θ y = ( θ y 1 , . . . , θ y n ) \theta_y=(\theta_{y1},...,\theta_{yn}) θy=(θy1,...,θyn)确定。 n n n是特征数目(在文本分类中,是词汇表总数), θ y i \theta_{yi} θyi是特征 i i i的概率 P ( x i ∣ y ) P(x_i|y) P(xiy)刚好在属于类 y y y的样本中。

    参数 θ y \theta_y θy通过某种平滑后的最大似然估计,例如相对频率计算:
    y ^ = N y i + α N y + α n \hat{y}=\frac{N_{yi}+\alpha}{N_y+\alpha n} y^=Ny+αnNyi+α
    其中 N y i = ∑ x ∈ T x i N_{yi}=\sum_{x\in T}x_i Nyi=xTxi是特征 i i i出现在类别 y y y的一个样本中的次数。

    N y = ∑ i = 1 n N y i N_y=\sum^n_{i=1}N_{yi} Ny=i=1nNyi是对于 y y y所有的特征总数。

    平滑先验 α ≥ 0 \alpha \geq 0 α0是因为,在训练样本中没出现从而使得将来计算中出现0概率的特征。将 α = 1 \alpha=1 α=1称为Laplace平滑,而 α &lt; 1 \alpha &lt; 1 α<1称为Lidstone平滑。

  • Complement Naive Bayes

  • Bernoulli Naive Bayes

  • Out-of-core Naive Bayes model fitting


  • Reference


  1. 1.9.

转载地址:http://ijwr.baihongyu.com/

你可能感兴趣的文章
51nod 1596 搬货物(二进制处理)
查看>>
来自星星的祝福(容斥+排列组合)
查看>>
Hmz 的女装(递推)
查看>>
HDU5589:Tree(莫队+01字典树)
查看>>
Codeforces Round #459 (Div. 2):D. MADMAX(记忆化搜索+博弈论)
查看>>
不停机替换线上代码? 你没听错,Arthas它能做到
查看>>
sharding-jdbc 分库分表的 4种分片策略,还蛮简单的
查看>>
分库分表的 9种分布式主键ID 生成方案,挺全乎的
查看>>
MySQL不会丢失数据的秘密,就藏在它的 7种日志里
查看>>
Python网络编程之socket应用
查看>>
Python开发之序列化与反序列化:pickle、json模块使用详解
查看>>
回顾-生成 vs 判别模型-和图
查看>>
Python 的 type 及常用魔法方法(上)
查看>>
采坑 - 字符串的 "" 与 pd.isnull()
查看>>
无序列表 - 链表
查看>>
SQL 查询强化 - 数据准备
查看>>
SQL 强化练习 (四)
查看>>
SQL 强化练习 (八)
查看>>
Excel 拼接为 SQL 并打包 exe
查看>>
Pandas数据分析从放弃到入门
查看>>