朴素贝叶斯应用之垃圾邮件识别
2018-04-07 21:10:58
  • 0
  • 0
  • 0

注意:基于事件的独立性

贝叶斯算法原理:

设 x={a1,a2,…,am}为一个待分类项,而每个 a 为 x 的一个特征属性。
有类别集合 C={y1,y2,…,yn}。
计算 P( y1|x) ,P( y2|x),…, P( yn|x)。
如果 P( yk|x) =max{P( y1|x),P( y2|x),…, P( yn|x)},则 x∈yk。

将数据分为特征和结果:垃圾邮件和非垃圾邮件

计算条件概率:

"""
计算条件概率
P(X1 = t1,X2 = t2,...,Xn = tn | yi)和P(C = yi)
对比后验概率
P(C = yi|X1 = t1,X2 = t2,...,Xn = tn),(i = 1,2)
训练样本去重做成一个集合
将文本转化为词袋模型(转化为计算机可以处理的0,1向量)
"""
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.fit(X_train,y_train)
print ( clf.score(X_test,y_test))

"""
在多项式模型中,设某文档d = (t1,t2,...,tk),tk是该文档中出现过的单词,允许重复,则先验概率
P(c)=类c下的单词总数/整个训练样本的单词总数
类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|v|)
V是训练样本的单词表,|V|则表示训练样本包含多少种单词。P(tk|c)可以看作是单词tk在证明d属于类
c上提供了多大的证据,而P(c)则可以认为是类别c在整体占多大比例(有多大可能性)
"""
 
最新文章
相关阅读