101

朴素贝叶斯(Naive Bayes)和情感分类

 6 years ago
source link: http://blog.stupidme.me/naive_bayes_classifier/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Naive Bayes分类器

Naive Bayes是一个概率分类器,也就是说,在文档d中,返回所有类别c中后验概率最大的类别$\hat{c}$:

$$\hat{c}=\text{argmax}P(c\vert d)$$

回顾一下贝叶斯法则:

$$P(x\vert y)=\frac{P(y\vert x)P(x)}{P(y)}$$

它把任何 条件概率 转化成了三个概率。

其中,$P(y)$是 先验概率 或者 边缘概率

贝叶斯法则可以从条件概率的定义推导,过程如下:

$$P(A\vert B) = \frac{P(A\cap B)}{P(B)}$$

又,

$$P(A\vert B)P(B) = P(A\cap B) = P(B\vert A)P(A)$$

所以,

$$P(A\vert B) = \frac{P(B\vert A)P(A)}{P(B)}$$

上面第二个公式又叫做 概率乘法法则

回到之前的$\hat{c}$,那么此时有:

$$\hat{c}=\text{argmax}P(c\vert d)=\text{argmax}\frac{P(d\vert c)P(c)}{P(d)}$$

因为$P(d)$对于任何$c$都是一个不变的值,所以可以省去:

$$\hat{c}=\text{argmax}P(c\vert d)=\text{argmax}P(d\vert c)P(c)$$

上式,$P(d\vert c)$叫做 似然(likelihood) ,$P(c)$即 先验概率(prior probability)

此时,假设文档$d$由 n 个特征组成,则有:

$$\hat{c}=\text{argmax}\overbrace{P(f_1,f_2,\dots,f_n\vert c)}^{\text{likelihood}}\ \overbrace{P(c)}^{\text{prior}}$$

要计算上面的 似然 ,需要很多的参数和很大的训练集,这个很难实现。

朴素贝叶斯有两个假设:

  • 位置无关
  • $P(f_i\vert c)$条件独立,也称 朴素贝叶斯假设

所以上式可以简化为:

$$P(f_1,f_2,\dots,f_n\vert c)=P(f_1\vert c)P(f_2\vert c)\dots P(f_n\vert c)$$

即:

$$C_{NB}=\text{argmax}P(c)\prod_{f\in F}P(f\vert c)$$

词袋模型(bag of words)不考虑词语的位置,把词语出现的频次当做特征,于是有:

$$C_{NB}=\text{argmax}P(c)\prod_{i\in positions}P(w_i\vert c)$$

为了避免数值下溢和提高计算速度,通常使用对数形式:

$$c_{NB}=\text{argmax}\log{P(c)+\sum_{i\in positions}\log{P(w_i\vert c)}}$$

训练朴素贝叶斯分类器

为了知道$P(c)$和$P(f_i\vert c)$,我们还是使用 最大似然估计(MLE)

有:

$$\hat{P}(c)=\frac{N_c}{N_{doc}}$$

$$\hat{P}(w_i\vert c)=\frac{count(w_i,c)}{\sum_{w\in V}count(w,c)}$$

为了避免某个概率值为0,我们使用 拉普拉斯平滑(Laplace smooth or add-one smooth)

$$\hat{P}(w_i\vert c)=\frac{count(w_i,c)+1}{\sum_{w\in V}(count(w,c)+1)}=\frac{count(w_i,c)+1}{(\sum_{w\in V}count(w,c))+\vert V\vert}$$

对于 unknown word 怎么处理呢?答案是: 直接从测试数据集中移除这些词,不计算概率

评估

TODO

Precision

Recall

F-measure


Recommend

  • 13
    • www.lewisgavin.co.uk 4 years ago
    • Cache

    Naive Bayes Example using Golf Dataset

    Naive Bayes Example using Golf DatasetNoticeWe and selected partners, use cookies or similar technologies as specified in the cookie policy.

  • 12

    Last weeks post was a Machine Learning Intro for...

  • 12
    • www.lewisgavin.co.uk 4 years ago
    • Cache

    Machine Learning Basics with Naive Bayes

    Machine Learning Basics with Naive Bayes After researching and looking into...

  • 11

    贝叶斯原理是英国数学家托马斯·贝叶斯于18 世纪提出的,当我们不能直接计算一件事情(A)发生的可能性大小的时候,可以间接的计算与这件事情有关的事情(X,Y,Z)发生的可能性大小,从而间接判断事情(A)发生的可能性大小。

  • 6

    朴素贝叶斯(Naive Bayesian)是一种基于贝叶斯定理和特征条件独立假设的分类方法,它是基于概率论的一种有监督学习方法,被广泛应用于自然语言处理,并在机器学习领域中占据了非常重要的地位。在之前做过的一个项目中,就用到了朴素贝叶斯分类器...

  • 8

    数学篇 - 朴素贝叶斯(Naive Bayes)分类算法(笔记)2020-09-14朴素贝叶斯(Naive Bayes)“用客观的新信息更新我们最初关于某个事物的信念后,我们就会得到一个新的、改进了的信念。” —- 数学家托马斯·贝...

  • 9
    • blog.knoldus.com 3 years ago
    • Cache

    MachineX: NAIVE BAYES CLASSIFIER with KSAI

    MachineX: NAIVE BAYES CLASSIFIER with KSAI Reading Time: 4 minutesNaive Bayes is a simple technique for constructing classifiers: models that assign class labels to problem instances, represented as vectors of f...

  • 10
    • www.guofei.site 3 years ago
    • Cache

    【Naive Bayes】理论与实现

    【Naive Bayes】理论与实现 2017年10月25日 Author: Guofei 文章归类: 2-1-有监督学习 ,文章编号: 226 版权声明:本文作者是郭飞。转载随意,但...

  • 8
    • blog.knoldus.com 3 years ago
    • Cache

    KnolX: NAIVE BAYES CLASSIFIER

    KnolX: NAIVE BAYES CLASSIFIER Reading Time: < 1 minuteHi all, Knoldus has organized a 30 min session on 27th April 2018 at 4:00 PM. The topic was NAIVE BAYES CLASSIFIER

  • 13

    January 5, 2022 / #Rust Ho...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK