当前课程知识点:R语言数据分析 >  下部:博术 >  第12章 既是世间法、自当有分别 >  12.7 朴素贝叶斯

返回《R语言数据分析》慕课在线视频课程列表

12.7 朴素贝叶斯在线视频

下一节:12.8 逻辑斯蒂回归

返回《R语言数据分析》慕课在线视频列表

12.7 朴素贝叶斯课程教案、知识点、字幕

大家好

欢迎来到《R语言数据分析》课程

今天和大家交流一下

朴素贝叶斯的相关内容

在我们前面的课程里面

简单的讲解了一下这个树模型

对于树模型而言

它其实就是什么

将这个数据空间划分成更小的区域

然后从而保证我们这个

相应的类别标签的一个纯度

对吧

最终实现我们在划分之后

进行分类

这是树模型

其实可以从这个不纯度或者不确定性的减少

这个角度来看

来看待它是如何分类的

也就是经过这个子空间的划分

来减少这个不确定性

当然说到这个不确定性的减少

其实还有另外一种方法是什么

比如说我们现在文科和理科

那这个取值它有一个不确定性

但是当我有了更多的证据之后

我可以减少这个不确定性

就是说在特征取某些值的时候

那我相应的

Y取文科

Y取理科

它这个不确定性是可以减少的

也就是说我们可以通过这么一个

条件概率来进行分类

这也就回到我们今天的主题

另外一种不确定性的减少的办法

就是朴素贝叶斯

说到这个朴素贝叶斯的话

我们先得看一看这个贝叶斯公式

贝叶斯公式其实大家都比较了解

就是这一个公式

在B发生的情况之下

A发生的概率等于多少

等于A发生的情况之下

B发生的概率乘以

A发生的概率再除以B发生的概率

当然这个公式我们记的话

其实是有一定的记忆的负担的

我们可以这样理解它

其实是什么

就是B发生的话相当于一个新的证据

一个新的证据

我先看看A本身发生概率有多大

A本身发生的概率多大

就是先验概率有多大

然后再看什么

再看这一部分

这一部分是什么

这部分就是说

B发生的时候如何提升A发生的概率

一个提升的程度

大家是还记得我们的

关联规则相应的算法的话

里面的提升度怎么定义

其实就是什么

A发生情况之下B发生概率除以

B发生的概率

就A和B这两个事件相互之间的提升的程度

A发生的情况之下

B发生的概率除以B发生的概率

毫无疑问是A提升B的程度

但同时我们也知道这个提升度是相互的

也相当于是

B发生的情况之下

A发生的概率再除以A的概率

所以我们可以看所谓的贝叶斯公式

其实就是什么

就是A发生概率本身是多少

然后再看看B出现的情况之下

对A提升的提升度有多大

我们这样来理解这个贝叶斯公式

那这个贝叶斯公式为什么来用来做分类呢

我们可以换一个形式

比如说我们现在把这个A换成了特征的组合

B换成了类别

具体到我们这个问题情境里面来

就是我的性别为男还是为女

我的语文成绩怎样

数学成绩怎样

外语成绩怎样等等

这九科成绩

都是一个特征的组合

在特征取不同的值的情况之下

我这个文理分科为文科

还是我这文理分科为理科

相应的什么

我相应的概率我都可以求出来

这个条件概率求出来

一旦我这个类别为1的条件概率求出来了(类别1=理科)

类别为2的条件概率求出来了(类别2=文科)

比如说为文科的概率是多少

是0.3

为理科的话是0.7

那好

那就证明在当前这个特征组合之下

我这应该

文理科应该选理科

就是选这个概率大的一个

当然这个公式我们可以

套用上面这个贝叶斯公式

我们可以将它进一步变成右边这个形式

也说类别一本身出现的概率再乘以什么

乘以它的这个特征组合之下

对于类别1出现概率的一个

提升的程度

当然我们最终都是为了

比较这两个概率的大小

取更大的那个而已

所以它分母相同的情况之下

我就不需要计算了

我只要知道类别1、类别2分别的概率

以及什么类别1出现的情况之下

这个特征组合出现的概率多大

类别2出现的情况之下

相应的特征组合出现概率有多大

在算完之后

其实我就可以得到

我们左侧这相应的两个概率(相对大小)

进而进行类别的划分

这也是如何将贝叶斯公式应用于分类

这是一个基本的原理

咱们看一下具体的过程

这时候我们将它换一个形式

这个时候条件就是什么

条件就是F1 F2到Fn

也就是相应的特征

然后我这个事件

就是这个类究竟是取文科还是理科

我们按照这个贝叶斯公式也可以这样写

写成这种形式

当然我们这个分母刚才说了不发挥作用的话

我只要计算上面这个分子的部分就可以

分子的部分的话

前面叫做P(C)这一块很容易计算

我只要对历史上出现文科和出现理科的次数

进行一个统计

再进行比例的换算

就得到这个概率了

比较关键的

是后面这一部分

也就这一部分所对应的

变成这个我们可以展开一下

就是

F1|C

F2|C,F1

一直往这样一直往下

我们把它展开来

变成这一个形式

当然这一个展开的形式的话

其实是很难求的

所以我们才说

这是不仅仅是利用贝叶斯公式来进行分类

而是用什么

而是用朴素贝叶斯

我们要朴素一点

什么意思

我们要假定这个特征之间相互独立

为了方便计算后面这个展开式

我们就做这么一个假设

这也是所谓的称之为朴素贝叶斯

这个朴素的来历

假如有这么一个假设的话

那怎样

那我这个公式就好计算

后面所有的部分都变成

F1|C F2|C Fi|C

相应的这一部分变成什么了呢

我们看一下

就变成了一个连乘的方式了

变成一个连乘的方式

然后这个公式相对来讲就比较容易记

我对历史上的我的训练集已经拿到了数据

我来做什么

也是做一个相应的

条件概率计算

其实也是在求比例

就C类别为文科的时候

我看这个性别为男

它的比例多少这个求出

F1|C了对吧

同样也可以求相应的其他一些值

求完之后怎办

我用那个表决函数

argmax

表决的是谁看后面这个结果

就是c不一样的时候

对我们这个问题情境来讲

就是c等于文科和c等于理科

等于文科的时候

我先求出p(c) p(c=文科)的值

然后再求

文科的时候性别为男

文科的时候性别为女等等

把这个求出来

求完之后将这个连乘

最后得到这一个

得到这一个连乘的结果

我看看

这个c是等于文科的时候

后面这个结果大一点

还是c等于理科的时候

这个结果大一点

假如文科大的话

那好

我最后返回的结果是什么

就是文科

假如理科大的话

c等于理科的时候

后面这个公式它的结果大的话

毫无疑问我最后表决结果

就是理科了

这是我们朴素贝叶斯它的一个最基本的假设

以及它的用于分类的一个最基本的逻辑

当然这个过程本身相对比较简单

它其实就在做计数 在求比例

但是其实这个算法用得好的话

它其实效果也非常好

我们不能说这个算法原理简单

就是说它太low了

比如说我们看这个nature

他一个子刊

其实在17年的时候

还有人用

相应的贝叶斯的相应的算法

做相应的研究

好咱们看一看

看一看我们这个在R里面如何具体实现

这个时候我们要调用这个

加载这个e1071这个包

这个包里面专门有个

naiveBayes()

朴素贝叶斯

跟我们大部分的那个算法建模

它的参数设置是一样的

首先是

首先确定自变量和因变量这么一个公式

然后要基于哪一份数据进行训练

训练出来模型

同样我们交给这个imodel

统一我们命名了一下叫imodel

假如我要看这个模型在这个训练集上

它的拟合效果的话

它的拟合效果我们是用这个predict()这个函数

这个newdata和我们前面训练集设置一样

type等于class

我们通过具体的这个Metrics里面ce这个函数

来评价它的性能指标

也就是看看它的分类错误率

这个时候是多少

0.29

就是十个里面可能要错三个左右了

十个里面错三个左右

那咱们看看这个在测试集上它的性能表现

同样是调这个函数

无非是什么newdata变成什么

变成测试集了

这个时候它结果是多少? 0.27

它比我们在那个训练集上效果稍微好了一点点

当然一般来讲我们在训练集上拟合效果

可能会绝大部分情况之下

都会优于这个测试集的效果

但也没有绝对的理由证明就是说

测试效果不会比这个训练集好

只是这种情况相对比较少一点而已

这是我们R里面一个实现的过程

就是调这个naiveBayes

调用了相应的predict这个泛型函数进行预测

咱们同样可以通过这个

K折交叉检验

来看一看

整个这个朴素贝叶斯这个算法

在我们这份数据集上

它最终在性能指标来稳定在哪个水平之上

前面的所有的框架都是完全一样的

这个时候无非是什么

无非是我们这个训练函数稍微有点不一样

其他的都是沿用我们前面的决策树

随机森林等等

同样的一个K折交叉检验的一个框架

我们也可以将这个什么预测结果和实际结果

交给这个imetrics

从而记录下我们朴素贝叶斯这个算法

对当前这一折它在训练集测试集上

它一个性能表现

为下一步我们做不同的模型比较

奠定一个基础

当然我们可以看一看

当前这个global_performence里面naiveBayes

它相应的一些指标

在训练集上的话

基本上都是稳定在28~29%

当然也就稍微好一点的26% 30%左右

在测试集上基本上和这个训练集

它性能指标差不多的

这是我们朴素贝叶斯的一个最基本的原理

以及在R里面的一个实现的过程

那我们再重新温习一下

究竟我们所谓的朴素贝叶斯

它的本质是什么

我们都说所谓机器学习也好

数据挖掘也好

都是发现数据背后的规律

而规律是什么

规律都是某种关系结构

那我这个朴素贝叶斯它究竟发现了什么关系

找到了什么规律

或者说这个规律的表现形式是什么

咱们考虑一下

其实通过我们前面这个

朴素贝叶斯的原理可以发现

我们所学到这个模型是什么

就是很多很多的先验概率以及

条件概率是不是

我们在做分类的时候也就是

先验概率和条件概率的乘积

所以我们真正学到的规律是什么

就是这些先验概率和条件概率

这是我们朴素贝叶斯的原理实现

以及它的一个作为规律来讲

它的一个表现形式

本次课到此结束

谢谢大家

R语言数据分析课程列表:

上部:问道

-第1章 气象万千、数以等观

--第1章 气象万千、数以等观

--第1章 作业

-第2章 所谓学习、归类而已

--2.1 所谓学习、归类而已(I)

--2.2 所谓学习、归类而已(II)

--2.3 所谓学习、归类而已(III)

--2.4 所谓学习、归类而已(IV)

--第2章 作业

-第3章 格言联璧话学习

--第3章 格言联璧话学习

--第3章 作业

-第4章 源于数学、归于工程

--第4章 源于数学、归于工程

--第4章 作业

-讨论题

--如何发挥人工智能的头雁效应

中部:执具

-第5章 工欲善其事、必先利其器

--第5章 工欲善其事、必先利其器

--第5章 作业

-第6章 基础编程——用别人的包和函数讲述自己的故事

--6.1 编程环境

--6.2Mini案例

--6.3 站在巨人的肩膀上

--6.4 控制流

--6.5 函数(I)

--6.6 函数(II)

--第6章 作业

-第7章 数据对象——面向数据对象学习R语言

--7.1 向量与因子(I)

--7.2 向量与因子(II)

--7.3 矩阵与数组(I)

--7.4 矩阵与数组(II)

--7.5 列表与数据框(I)

--7.6 列表与数据框(II)

--第7章 作业

-第8章 人人都爱tidyverse

--第8章 人人都爱tidyverse

--第8章 作业

-第9章 最美不过数据框

--第9章 最美不过数据框

--第9章 作业

下部:博术

-第10章 观数以形

--10.1 一维数据空间(I)

--10.2 一维数据空间(II)

--10.3 二维数据空间

--10.4 高维数据空间

--第10章 作业

-第11章 相随相伴、谓之关联

--11.1 导引

--11.2 关联规则(I)

--11.3 关联规则(II)

--11.4 关联规则(III)

--第11章 作业

-第12章 既是世间法、自当有分别

--12.1 导引

--12.2 近邻法(I)

--12.3 近邻法(II)

--12.4 决策树(I)

--12.5 决策树(II)

--12.6 随机森林

--12.7 朴素贝叶斯

--12.8 逻辑斯蒂回归

--12.9 人工神经网络(I)

--12.10 人工神经网络(II)

--12.11 支持向量机

--第12章 作业

-第13章 方以类聚、物以群分

--13.1 导引

--13.2 划分方法

--13.3 层次方法

--第13章 作业

-第14章 庐山烟雨浙江潮

--第14章 庐山烟雨浙江潮

--第14章 作业

12.7 朴素贝叶斯笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。