机器学习算法整理(三)

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 05:40   677   0

朴素贝叶斯

利用朴素贝叶斯解决邮件分类(文本分析)问题(监督学习)

模型的输入是P()P(邮件内容|正常)P()P(邮件内容|垃圾)(似然概率);先验概率P()P(垃圾)P()P(正常)

任务内容是计算P(or)P(垃圾or正常|邮件内容)(后验概率)

联合概率分布P(X1,X2, ,XnY)=i=1NP(XiY)P(X_1,X_2,\cdots,X_n|Y)=\prod_{i=1}^{N}P(X_i|Y)(其中XiX_i是相互独立的)

贝叶斯定理:
P(AB)=P(BA)P(A)P(B)P(A|B)=\frac{P(B|A)P(A)}{P(B)}

  • 处理似然概率为0的情况?
    Smoothing:
  1. Add-one smoothing (分子加一,分母加词库大小)
    p=x+1y+Vp=\frac{x+1}{y+V} V:词库大小

文本的处理

文本的数据需要转换成向量形式(vector)

即计算P()P(邮件内容|正常)P()P(邮件内容|垃圾)(似然概率)的两种方法

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
  1. 词频计算
    图源来自GreedyAIAcademy
    在这里插入图片描述
  2. Tfidf
    tfidf(w)=tf(d,w)idf(w)tfidf(w) = tf(d,w)*idf(w)tf(d,w)tf(d,w)wwdd字典中的词频;
    idf(w)=logNN(w)idf(w)=log\frac{N}{N(w)}NN是文档总数,N(w)N(w)ww在几个文档中出现
    同样要进行平滑处理。

问题

  1. 当特征为实数型时,例如w2v的向量一般为float型,连乘导致结果出现underfloor,如何解决?
    A:1. 取log(P)log(P) 2. kenerl函数
  2. 为什么叫朴素贝叶斯?
    A:因为各项条件独立
  3. 生成模型和判别模型
  4. 朴素贝叶斯的最大似然函数

exercise

 # 待完成
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP