机器学习朴素贝叶斯

白癜风有治愈的吗 http://baidianfeng.39.net/qzzt/bdfnzhm/
1.1朴素贝叶斯算法简介1.2概率基础复习1.概率定义

概率定义为一件事情发生的可能性

扔出一个硬币,结果头像朝上

P(X):取值在[0,1]

2.案例:判断女神对你的喜欢情况

在讲这两个概率之前我们通过一个例子,来计算一些结果:

问题如下:

女神喜欢的概率?

职业是程序员并且体型匀称的概率?

在女神喜欢的条件下,职业是程序员的概率?

在女神喜欢的条件下,职业是程序员、体重超重的概率?

计算结果为:

P(喜欢)=4/7P(程序员,匀称)=1/7(联合概率)P(程序员

喜欢)=2/4=1/2(条件概率)P(程序员,超重

喜欢)=1/4

思考题:在小明是产品经理并且体重超重的情况下,如何计算小明被女神喜欢的概率?

即P(喜欢

产品,超重)=?

此时我们需要用到朴素贝叶斯进行求解,在讲解贝叶斯公式之前,首先复习一下联合概率、条件概率和相互独立的概念。

3.联合概率、条件概率与相互独立

联合概率:包含多个条件,且所有条件同时成立的概率

记作:P(A,B)

条件概率:就是事件A在另外一个事件B已经发生条件下的发生概率

记作:P(A

B)

相互独立:如果P(A,B)=P(A)P(B),则称事件A与事件B相互独立。

4.贝叶斯公式4.1公式介绍4.2案例计算

那么思考题就可以套用贝叶斯公式这样来解决:

P(喜欢

产品,超重)=P(产品,超重

喜欢)P(喜欢)/P(产品,超重)

上式中,

P(产品,超重

喜欢)和P(产品,超重)的结果均为0,导致无法计算结果。这是因为我们的样本量太少了,不具有代表性。

本来现实生活中,肯定是存在职业是产品经理并且体重超重的人的,P(产品,超重)不可能为0;

而且事件“职业是产品经理”和事件“体重超重”通常被认为是相互独立的事件,但是,根据我们有限的7个样本计算“P(产品,超重)=P(产品)P(超重)”不成立。

而朴素贝叶斯可以帮助我们解决这个问题。

朴素贝叶斯,简单理解,就是假定了特征与特征之间相互独立的贝叶斯公式。

也就是说,朴素贝叶斯,之所以朴素,就在于假定了特征与特征相互独立。

所以,思考题如果按照朴素贝叶斯的思路来解决,就可以是

P(产品,超重)=P(产品)*P(超重)=2/7*3/7=6/49p(产品,超重

喜欢)=P(产品

喜欢)*P(超重

喜欢)=1/2*1/4=1/8P(喜欢

产品,超重)=P(产品,超重

喜欢)P(喜欢)/P(产品,超重)=1/8*4/7/6/49=7/12

那么这个公式如果应用在文章分类的场景当中,我们可以这样看:

公式分为三个部分:

P(C):每个文档类别的概率(某文档类别数/总文档数量)

P(W│C):给定类别下特征(被预测文档中出现的词)的概率

Ni为该F1词在C类别所有文档中出现的次数

N为所属类别C下的文档所有词出现的次数和

计算方法:P(F1│C)=Ni/N(训练文档中去计算)

P(F1,F2,…)预测文档中每个词的概率

如果计算两个类别概率比较:

所以我们只要比较前面的大小就可以,得出谁的概率大

4.3文章分类计算

需求:通过前四个训练样本(文章),判断第五篇文章,是否属于China类

计算结果

P(C

Chinese,Chinese,Chinese,Tokyo,Japan)--P(Chinese,Chinese,Chinese,Tokyo,Japan

C)*P(C)/P(Chinese,Chinese,Chinese,Tokyo,Japan)=P(Chinese

C)^3*P(Tokyo

C)*P(Japan

C)*P(C)/[P(Chinese)^3*P(Tokyo)*P(Japan)]#这个文章是需要计算是不是China类,是或者不是最后的分母值都相同:#首先计算是China类的概率:P(Chinese

C)=5/8P(Tokyo

C)=0/8P(Japan

C)=0/8#接着计算不是China类的概率:P(Chinese

C)=1/3P(Tokyo

C)=1/3P(Japan

C)=1/3

#这个文章是需要计算是不是China类:首先计算是China类的概率:0.P(Chinese

C)=5/8--6/14P(Tokyo

C)=0/8--1/14P(Japan

C)=0/8--1/14接着计算不是China类的概率:0.P(Chinese

C)=1/3--(经过拉普拉斯平滑系数处理)2/9P(Tokyo

C)=1/3--2/9P(Japan

C)=1/3--2/91.3案例:商品评论情感分析1.api介绍

sklearn.naive_bayes.MultinomialNB(alpha=1.0)

朴素贝叶斯分类

alpha:拉普拉斯平滑系数

2.商品评论情感分析2.1步骤分析

1)获取数据

2)数据基本处理

2.1)取出内容列,对数据进行分析

2.2)判定评判标准

2.3)选择停用词

2.4)把内容处理,转化成标准格式

2.5)统计词的个数

2.6)准备训练集和测试集

3)模型训练

4)模型评估

2.2代码实现

importpandasaspdimportnumpyasnpimportjiebaimportmatplotlib.pyplotaspltfromsklearn.feature_extraction.textimportCountVectorizerfromsklearn.naive_bayesimportMultinomialNB

1)获取数据

#加载数据data=pd.read_csv("./data/书籍评价.csv",encoding="gbk")data

2)数据基本处理

#2.1)取出内容列,对数据进行分析content=data["内容"]content.head()#2.2)判定评判标准--1好评;0差评data.loc[data.loc[:,评价]=="好评","评论标号"]=1#把好评修改为1data.loc[data.loc[:,评价]==差评,评论标号]=0#data.head()good_or_bad=data[评价].values#获取数据print(good_or_bad)#[好评好评好评好评差评差评差评差评差评好评差评差评差评]#2.3)选择停用词#加载停用词stopwords=[]withopen(./data/stopwords.txt,r,encoding=utf-8)asf:lines=f.readlines()print(lines)fortmpinlines:line=tmp.strip()print(line)stopwords.append(line)#stopwords#查看新产生列表#对停用词表进行去重stopwords=list(set(stopwords))#去重列表形式print(stopwords)#2.4)把“内容”处理,转化成标准格式



转载请注明地址:http://www.sanbaicaoasb.com/scgx/8453.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章