联合概率:包含多个条件,且所有条件同时成立的概率
记作:P(A,B)
P(A,B)=P(A)P(B)
条件概率:就是事件A在另外一个事件B已经发生的条件概率
记作:P(A|B)
特性:P(A1,A2|B)=P(A1|B)P(A2|B)
注意:此条件概率的成立,是由于A1,A2相互独立的结果
下面靠一个案例演示:
样本数职业体型女神是否喜欢1程序员超重不喜欢2产品匀称喜欢3程序员匀称喜欢4程序员超重喜欢5美工匀称不喜欢6美工超重不喜欢7产品匀称喜欢 女神喜欢的概率: 4/7职业是程序员并且体型匀称的概率? P(程序员,匀称)=3/7*4/7=12/49在女神喜欢的条件下,职业是程序员的概率 2/4=1/2在女神喜欢的条件下,职业是产品,体重是超重的概率? P(产品,超重|喜欢)=P(产品|喜欢)P(超重|喜欢)=1/2*1/4=1/8P(C|W)=P(W|C)P(C)/P(W)
注意:w为给定文档的特征值(频数统计,预测文档提供),c为文档类别 公式分为三个部分:
P(C):每个文档类别的概率(某文档类别数/总文档数量)P(W|C):给定类别下特征(被预测文档中出现的词)的概率下面用一个例子来说明贝叶斯公式的概念
训练集统计结果(指定统计词频):
特征\统计科技(30篇)娱乐(60篇)汇总(90篇)商场95160影院85664支付宝201535云计算63063汇总(求和)100121221现有一篇被预测文档;出现了影院,支付宝,云计算,计算属于科技、娱乐的类别概率?
P(科技|影院,支付宝,云计算)=P(影院,支付宝,云计算|科技)P(科技)=(8/100)(20/100)(63/100)(30/90)=0.00456109
P(娱乐|影院,支付宝,云计算)=P(影院,支付宝,云计算|娱乐)P(娱乐)=(56/121)(15/121)(0/121)(60/90)=0
思考:属于某个类别为0,合适吗?
P(F1|C)=Ni+a/N+am a为指定的系数一般为1,m为训练文档中统计出的特征词个数
P(科技|影院,支付宝,云计算)=P(影院,支付宝,云计算|科技)P(科技)=(8/100+1*4)(20/100+1*4)(63/100+1*4)(30/90)
P(娱乐|影院,支付宝,云计算)=P(影院,支付宝,云计算|娱乐)P(娱乐)=(56/121+1*4)(15/121+1*4)(0/121+1*4)(60/90)
sklearn.naive_bayes.MultinomialNB(alpha=1.0)
朴素贝叶斯分类alpha:拉普拉斯平滑系数算法实例:
sklearn20类新闻分类20个新闻组数据集包含20个主题的18000个新闻组帖子流程:
加载20类新闻数据,并进行分割生成文章特征词朴素贝叶斯estimator流程进行预估代码实现:
from sklearn.datasets import fetch_20newsgroups from sklearn.model_selection import train_test_split from sklearn.naive_bayes import MultinomialNB from sklearn.feature_extraction.text import TfidfVectorizer def naciebayes(): """ 朴素贝叶斯 :return: """ news=fetch_20newsgroups(subset='all') #进行数据分割 x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,test_size=2) #对数据分割 tf=TfidfVectorizer() #以训练集当中的词的列表进行每篇文章重要性统计['a','b','c','d'] x_train=tf.fit_transform(x_train) x_test= tf.transform(x_test) #朴素贝叶斯算法的预测 mlt=MultinomialNB(alpha=1.0) print(x_train) mlt.fit(x_train,y_train) y_predict=mlt.predict(x_test) print("预测的文章类型为:",y_predict) #得出准确率 print("准确率为:",mlt.score(x_test,y_test)) mlt.predict(x_test) return None if __name__=="__main": naciebayes()运行结果如下:
训练集误差大,结果肯定不好
优点:
朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率对缺失数据不太敏感,算法也比较简单,常用于文本分类。分类准确度高,速度快。缺点:
由于使用了样本属性独立性的假设,所有如果样本属性有关联时其效果不好