朴素贝叶斯
利用朴素贝叶斯解决邮件分类(文本分析)问题(监督学习)
模型的输入是P(邮件内容∣正常),P(邮件内容∣垃圾)(似然概率);先验概率P(垃圾),P(正常)
任务内容是计算P(垃圾or正常∣邮件内容)(后验概率)
联合概率分布P(X1,X2,,Xn∣Y)=∏i=1NP(Xi∣Y)(其中Xi是相互独立的)
贝叶斯定理:
P(A∣B)=P(B)P(B∣A)P(A)
- Add-one smoothing (分子加一,分母加词库大小)
p=y+Vx+1 V:词库大小
文本的处理
文本的数据需要转换成向量形式(vector)
即计算P(邮件内容∣正常),P(邮件内容∣垃圾)(似然概率)的两种方法
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
- 词频计算
图源来自GreedyAIAcademy

- Tfidf
tfidf(w)=tf(d,w)idf(w)tf(d,w)是w在d字典中的词频;
idf(w)=logN(w)N,N是文档总数,N(w)是w在几个文档中出现
同样要进行平滑处理。
问题
- 当特征为实数型时,例如w2v的向量一般为float型,连乘导致结果出现underfloor,如何解决?
A:1. 取log(P) 2. kenerl函数
- 为什么叫朴素贝叶斯?
A:因为各项条件独立
- 生成模型和判别模型
- 朴素贝叶斯的最大似然函数
exercise
|