5. 机器学习——分类算法-朴素贝叶斯算法(笔记)

1. 常见的例子

1.1 垃圾邮件分类

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第1张图片

1.2 文章分类

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第2张图片

2. 概率基础

简单的一个例子,职业和体型与女神是否喜欢的关系:
5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第3张图片5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第4张图片

2.1 联合概率和条件概率

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第5张图片5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第6张图片

可以看到第一问题很简单4/7,第二个问题是求联合概率 p(程序员,匀称) = p(程序员)p(匀称) = 3/7 * 4/7=12/49。第三个问题是条件概率,p(程序员|喜欢) = 2/4 ;第4个问题也是条件概率,P(产品,超重|喜欢) = P(产品|喜欢)P(超重|喜欢) = 1/2*(1/4) = 1/8

3. 朴素贝叶斯-贝叶斯公式

某一个文档是哪一类别的概率是多少。
5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第7张图片5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第8张图片
5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第9张图片
朴素贝叶斯,之所以叫“朴素”,指的就是特征独立,这也是条件概率的前提。

例子:
5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第10张图片
根据朴素贝叶斯公式,这篇文档是科技类别的概率是p(科技|影院,支付宝,云计算) = p( 影院,支付宝,云计算|科技) ∗ p( 科技) (因为求每一种类别的概率都要除以p(特征值的概率)所以这里就省略掉)

p( 影院,支付宝,云计算|科技) 是条件概率,根据条件概率公式,等于,p( 影院|科技) *p( 支付宝|科技) *p(云计算|科技) 也即,8/100 x 20/100 x 63/100 ,而 p( 科技) 是等于 30/90

同理,娱乐类别也是这样。

从图片中可以看出,娱乐类别是0,这显然是不合理的。所以引出拉普拉斯平滑。

3.1 拉普拉斯平滑

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第11张图片
所以,添加完拉普拉斯平滑系数

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第12张图片

4.朴素贝叶斯的API

4.1 sklearn朴素贝叶斯实现API

 sklearn.naive_bayes.MultinomialNB

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第13张图片

5. 朴素贝叶斯算法案例

• sklearn20类新闻分类
• 20个新闻组数据集包含20个主题的18000个新闻组帖子

朴素贝叶斯案例流程

1、加载20类新闻数据,并进行分割
2、生成文章特征词
3、朴素贝叶斯estimator流程进行预估

代码

from sklearn.naive_bayes import MultinomialNB
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer

#获取数据
news = fetch_20newsgroups(subset='all')  #可以指定下载位置

#对数据进行分割
x_train, x_test, y_train, y_test = train_test_split(news.data,news.target,test_size=0.25)

#对数据集进行特征抽取
tf = TfidfVectorizer()

#以训练集当中的词的列表进行每篇文章重要性统计['a','b'.'c','d']
x_train = tf.fit_transform(x_train)

print('获取特征的名字',tf.get_feature_names())

x_test = tf.transform(x_test)

#进行朴素贝叶斯算法的预测
mlt =MultinomialNB(alpha=1.0)

mlt.fit(x_train,y_train)

y_predict = mlt.predict(x_test)

print('预测文章的类别', y_predict)

#得出准确率
print('准确率为', mlt.score(x_test,y_test))

结果

预测文章的类别 [12  9  1 ... 14 13 11]
准确率为 0.857597623089983

6. 朴素贝叶斯分类优缺点

5. 机器学习——分类算法-朴素贝叶斯算法(笔记)_第14张图片

你可能感兴趣的:(机器学习,python,机器学习,算法,python)