机器学习简明教程16-sklearn应用朴素贝叶斯算法

机器学习简明教程16-sklearn应用朴素贝叶斯算法
jiutian99
jiutian99
41
阅读
0
评论
2021年10月10日11:01:17 0 41

通过之前两节知识的学习,相信大家已经对朴素贝叶斯算法有了初步的掌握,本节将学习实际应用朴素贝叶斯算法,从实战中体会朴素贝叶斯算法的精妙之处。

首先看下面一个简单应用案例:

一、简单应用案例

假设一个学校有 45% 的男生和 55% 的女生,学校规定不能穿奇装异服,男生的裤子只能穿长筒裤,而女生可以穿裙子或者长筒裤,已知该学校穿长筒裤的女生和穿裙子的女生数量相等,所有男生都必须穿长筒裤,请问如果你从远处看到一个穿裤子的学生,那么这个学生是女生的概率是多少?看完上述问题,大家是不是已经很快的计算出了结果呢?还是丈二和尚,摸不到头脑呢?下面我们一起来分析一下,我们根据贝叶斯公式,列出要用到的事件概率:

学校女生的概率:P(女生)= 0.55

女生中穿裤子的概率:P(裤子|女)= 0.5

学校中穿裤子的概率:P(裤子)= 0.45 + 0.275= 0.725

知道了上述概率,下面使用贝叶斯公式求解 P(女生|裤子) 的概率:

P(女|裤子) = P(裤子|女生) * P(女生) / P(裤子) = 0.5 * 0.55 / 0.725 = 0.379

利用上述公式就计算出了后验概率 P(女生|裤子) 的概率,这里的 P(女生) 和 P(裤子)叫做先验概率,而 P(裤子|女生) 就是我们经常提起的条件概率“似然度”。

二、sklearn实现朴素贝叶斯

在 sklearn 库中,基于贝叶斯定理的算法集中在 sklearn.naive_bayes 包中,根据对“似然度 P(xi|y)”计算方法的不同,我们将朴素贝叶斯大致分为三种:多项式朴素贝叶斯(MultinomialNB)、伯努利分布朴素贝叶斯(BernoulliNB)、高斯分布朴素贝叶斯(GaussianNB)。另外一点要牢记,朴素贝叶斯算法的实现是基于假设而来,在朴素贝叶斯看来,特征之间是相互独立的,互不影响的。

高斯朴素贝叶斯适用于特征呈正态分布的,多项式贝叶斯适用于特征是多项式分布的,伯努利贝叶斯适用于二项分布。

1. 算法使用流程

使用朴素贝叶斯算法,具体分为三步:

统计样本数,即统计先验概率 P(y) 和 似然度 P(x|y)。

根据待测样本所包含的特征,对不同类分别进行后验概率计算。

比较 y1,y2,...yn 的后验概率,哪个的概率值最大就将其作为预测输出。

2. 朴素贝叶斯算法应用

下面通过鸢尾花数据集对朴素贝叶斯分类算法进行简单讲解。如下所示:

#鸢尾花数据集

from sklearn.datasets import load_iris

#导入朴素贝叶斯模型,这里选用高斯分类器

from sklearn.naive_bayes import GaussianNB

#载入数据集

X,y=load_iris(return_X_y=True)

bayes_modle=GaussianNB()

#训练数据

bayes_modle.fit(X,y)

#使用模型进行分类预测

result=bayes_modle.predict(X)

print(result)

#对模型评分

model_score=bayes_modle.score(X,y)

print(model_score)

输出结果:

预测分类:

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1

1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2

2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2

2 2]

模型评分:

0.96


余额充值 点赞(0)
weinxin
账号+金额发此微信
充值后请把会员账号/用户名+充值金额发送到此微信:tourism52
历史上的今天
01月
18
go,语言,赋值 菜鸟教程

Go语言之赋值

简单赋值赋值语句用来更新变量所指的值,它最简单的形式由赋值符=,以及符号左边的变量和右边的表达式组成。x = 1  //有名称的变量*p = true  // ...
Web,Service,那点,事儿,Web,Service,那点,事儿,即, 菜鸟教程

Web Service 那点事儿

Web Service 那点事儿 Web Service,即Web 服务,简写为 WS,从字面上理解,它其实就是基于 Web 的服务。而服务却是双方的,有服务需求方,就有服务提供方...
MongoDB,4.2,新特性,新,特性,解读,MongoDB,4.2, 菜鸟教程

MongoDB 4.2 新特性解读

MongoDB 4.2 新特性解读 MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读。 Full ...
「,编程语言,」,快速,掌握,Perl,「,编程语言, 菜鸟教程

「编程语言」快速掌握 Perl

「编程语言」快速掌握 Perl 引言: 1987年Larry Wall发布Perl1.0以来,用户数一直急剧增加,同时越来越多的程序员与软件开发者(商)参与Perl的开发。从最初被...
xml, dom ,节点,学习 菜鸟教程

XML DOM 节点学习

节点根据 DOM,XML 文档中的每个成分都是一个节点。DOM 是这样规定的:整个文档是一个文档节点每个 XML 标签是一个元素节点包含在 XML 元素中的文本是文本节点每一个 X...

Comment list 共有 0 条评论

暂无评论