分类预测:Bayes Classifier-1|学习笔记

简介: 快速学习分类预测:Bayes Classifier-1

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践分类预测:Bayes Classifier-1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15445


分类预测:Bayes Classifier-1


贝叶斯分类器

贝叶斯分类器是以概率框架来解决分类问题的一种方法,它关键要用到概率的一些知识,如果同学们对于概率的一些基本概念和基本知识有淡忘的话还是应该去补充一下。

我们来先看一下我们在分类算法里面用到的一些概率的知识,首先一个叫条件概率,我们来看一下件概率的定义,条件概率是指在事件A发生的条件下,另一事件C发生的概率,它的表示符号是P(C|A),读作给定A条件下C发生的概率,那么英文的表达式give A情况下C的概率。我们来看一下这个条件概率,它的公式是什么?大家看右边,给定A的情况下面求C的概率,他应该等于A和C共同发生的概率,也叫联合概率,是用P(A,C)表示,然后再除以A单独发生的概率,也就是要描述一下,就是要求给定A情况下面C发生的概率,那么我们要知道A和C同时联合发生的概率,以及A单独发生的概率,那我们就可以求出来给定A条件下C发生的概率。这里有一个叫联合概率的概念,我们来看看联合概率是怎么定义的。联合概率表示两个事件共同发生的概率,那么它的表达方式可以用P(AC)或者P(A,C)或者P(A∩C),这是集合的一个符号交集,这叫联合概率。再看一个条件概率的例子,我们假设是给定C在求i的概率,那么他应该等于A和C的联合概率除以C的单独概率。那么关于条件概率的话,我们现在只是一个概念表达,并没有给大家很感性的一些例子,比较抽象,如果大家理解起来,暂时还不是很通畅,那我们先要学会记忆,虽然记忆也是一种能力,也是一种学习技巧。我们一起看一下这两个联合概率两个条件概率的公式,那么记忆的技巧是什么呢?技巧的话就是分子是两个事件的联合概率,分母是给定的概率,比如说给定A情况下面求C的概率,分子是A和C的联合概率,分母必然是给定的A的概率,同样的给定C情况下的A的概率的话,那么分母分子的话是A和C的联合概率,分母的话是给定C的单独概率,所以大家呢要先能够有记忆的一个能力,那么至于说抽象没有感性的认识,我们后面可以通过例子来给大家讲解。有了条件概率以后,我们就可以推导出贝叶斯公式或者贝叶斯定理。贝叶斯它是一个英国的数学家,是1701年~1761年期间的人物,贝叶斯科学家的话,他的贡献是非常巨大的,我们现在的人工智能,大数据深度学习等等,都用了很多概率的知识,如果没有贝叶斯的话,有人认为人工智能可能会倒退两三百年。我们来看贝叶斯的定理,给定A的情况下求C的概率,我们把原来的这个条件概率的公式转换一下,原来的上面分子应该是A和C的联合概率,联合概率比较难求,我们把这个分母移到左边去,那就变成了给定C情况下面A的概率在乘以C的单独概率,分母是给定A的单独概率,这就是著名的贝叶斯定理。我们再来记一下,求给定A情况下的C的概率,等于A的先验概率是已知的,然后来求给定A情况下点C的概率是个后验概率,那么它等于什么呢?等于就是我们要知道给定C情况下的A的概率以及C的单独概率,再除以A的单独概率,这样就是贝叶斯的定理,也叫贝叶斯公式,贝叶斯原理,这对我们后面数据挖掘的分类非常重要。

image.png

1、概率基本知识回顾

前面我们一下子接触了很多概率的基本概念,条件概率,联合概率,先验概率,后验概率,贝叶斯定理定理等等。下面我们帮助同学们再回忆一些最基本的概率的知识,首先是关于概率的定义,概率的定义是量度或者度量某事或某事件发生几率的一种数量指标,我们可以用这样的公式来表达A)事件发生的概率是P(A)=n(A)/n(S),这就是A事件发生的概率,S是整个概率空间,也成为样本空间,是所有可能的结果,而实际发生的事情,比如说A它是S的子集。我们在后面数据挖掘当中要计算概率的时候,那么一个基本的方法,就是计算每个类别样本的数量除以总样本数量,就是那个类别样本的概率。比如说家庭收入低中高的家庭收入,低的样本的数量除以总数,就是家庭收入低的样本的概率,家庭收入中的样本的数量除以总的样本数量,就是家庭收入中的样本的概率。

下面我们再来看一下,一个可视化表达概率的方法叫维恩图,这个维字大家看到资料里面也有这样的表达,用这个韦来表示,也叫做文氏图,它是概率的图形表示在集合论当中也常用这个可视化方法,它是来辅助我们概率计算的。

大家看一下整个样本空间就是外面的这个矩形框,然后A事件的概率就这个蓝颜色的椭圆A事件的概率,同样B事件的概率是B的椭圆面积除以整个矩形框的面积,C的事件的概率是C的椭圆的面积除以整个矩形框的面积,A和B的联合概率就是它们交集的地方,这个图示化表达的话,可能是帮助大家理解起来方便一点。我们再来看看几个事件的概念,知道一下关于事件的几个概念,第一个叫对立事件,对立事件我们用A'表示,A'式是A的对立事件,它表达的意思就是要么发生A要么发生A',A和A'互为穷举事件,它们是叫对立事件,对立事件的话A与A'的概率加在一起是等于1的;然后再一个是互斥事件,两个事件只有一个会发生,这叫互斥事件,当然对立事件肯定是互斥事件,互斥事件不一定是对立事件,互斥事件,比如说你现在在上海,那你就不可能在北京了,两个是互斥的事件;再有就是相交事件,相交事件就两个事件有可能同时会发生的;然后再一个相关事件,有几个事件发生的概率互相是有影响的;然后再一个独立事件就是事件发生的概率互相是没有影响的。那么我们来回忆一下我们前面讲的公式,在给定A情况下面求C的概率,等于分子是A和C的联合概率,分母是A的单独概率,那么假设A和C是独立事件的话,那A和C,A发生的概率,求C发生的概率的话,A和C是独立事件的话,互相没有影响的,那也就是C发生的概率和A是没有任何关系的,所以C发生的概率还应该是C的单独概率,但是我们知道他们是有影响的,是有相关的或者相交的,正因为有影响,所以我们给定A情况下面求C的概率,它先是A和C的联合概率除以A的单独概率。

所以关于这些基本概念,大家应该还是去掌握一下,如果比较陌生的话大家应该去把相关的内容都补充一下,关于概率的话,有专门概率论的知识,内容还是比较多的。

image.png举一个例子来加深的对贝叶斯定理的理解。我们给定的条件是医生知道脑膜炎,我们用M表示,会导致脖子僵硬,我们用S表示的概率是50%,用概率公式表达为P(S|M)=0.5,所以大家以后要习惯上把我们的文字表达里面的这些条件这些数据转换成概率的表达方式,然后病人中有脑膜炎的先验概率是1/50000,M表示脑膜炎,那么M的单独概率是1/5000,第三个条件是有颈部僵硬(S)的患者的先验概率是也有颈部僵硬1/20,也就是S的单独概率是1/20。我们要求如果一个病人他脖子僵硬,他可能是脑膜炎的概率是多少?

如果一个病人他脖子僵硬就是给定S,然后他得脑膜炎的概率,求M的概率,我们表达的话就是给定S脖子僵硬求是脑膜炎的概率,我们利用贝叶斯定理,贝叶斯定理大家能够对照一下我们的分母,那一定是给定的S单独概率,分子的话是反过来,要知道给定了M然后S的概率然后再乘以M的单独概率,然后再等于把刚刚的写值带进去给定到M,然后求S的概率,这个是0.5,我们上面求的是0.5,然后再一个乘以M的单独概率1/50000,然后除以S的单独概率1/20,最后求出来它的概率是0.0002。希望大家通过这个例子对贝叶斯定理有一个比较深入的理解。

image.png

2、贝叶斯分类器

我们主要是用贝叶斯定理来解决样本数据的分类问题。我们来先看一个假设,假设我们样本数据里面的每一个属性以及那个类的标记,那一个特别的属性,都是一个随机变量,然后我们样本里面给定一条记录,它带有这样一些属性(A1,A2,…,An),连续给定一条样本记录,然后我们要求它属于哪一类,我们类别用C来表示,那么如果我们转换成贝叶斯表达方式的话,概率表达方式的话,那么我们就是来求可以听到A1到An这样一组属性值,也就是给定一条记录,然后求它属于C的概率,这个C的话是类别变量,就是我们的y变量,那这个有几类我们比较容易的是二元分类,它里面C有几个值,最终的话我们是要求那个概率最大的那个谁的值,也就是求给定了A1到An,然后求谁的概率,然后概率的话有几个y值就有几个概率,我们就求那个最大的概率就是那一类。

我们现在考虑一个问题,我们能够从样本数据里面估计出计算出给定的A1到An然后它属于某个C的概率嘛,我们要利用贝叶斯定理来解决。贝叶斯分类器,它的分类原理是通过某对象的先验概率,是A1到An是已知它的先验概率,然后利用贝叶斯公式,我们来计算它的后验概率,就是给定了A1到An我们求他属于某个类别C的概率,即该对象属于某一类的概率,,然后我们最终要选择具有最大后验概率的类作为该对象的类,因为这个C的话有几个值二元分里有两个值,那到底取哪一个值呢?看他的最大后验概率有是那一类取那一个类的值。

image.png我们来看贝叶斯分类器的具体方法,也就是刚刚讲的我们要通过A1到An的先验概率,然后求它属于某个类别的后验概率,就是这样一个的说话表达,我们利用贝叶斯定理把它转换一下,就是下面这个红框里面表达的,我们给定了A1到An求C的概率,但应该等于分母应该还是A1到An的概率,分子的话是反过来就是要知道C的概率,然后求A1到An的感m概率,然后再乘以C单独概率,这就是毕业定理的应用。

通过这个定理我们就要来找到他解题的过程,把它的答案给求出来,然后我们最终是选择那个C最大概率。

我们来分析一下在这个分母A1到An的概率,我们是用样本数据来做分类的,样本数据已知的情况下,每一个样本它的每一个属性的值都是已知了,整个样本里面A1到An的概率应该是已知的,我们应该知道P(A1,…,An)这个概率应该是一个常量,我们可以把这个常量暂时忽略一下,我们要求给定到A1到An求C的概率,应该就变成求分子是最重要的,也就是我们下面这个表达方法,我们最终是要能够把这个求出来就可以了,就是给定了A1到An的概率,然后就算是C给定情况下面A1到An的概率以及C的单独概率,只要能够把这个求出来,我们就能够解决我们刚刚的分类问题,在这个表达里面,我们也要注意一下这个C的单独概率,我们样本数据已知的情况下就是那个特别的那一列那几个类别列y列,它应该也是已知的,所以P(C)是肯定能求出来的,最终的话我们就变成了只要能够求出给定C然后求A1到An的概率,那么我们就可以解决了前面讲的分类问题。

image.png

3、朴素贝叶斯分类器

我们继续来往下推导,刚刚讲过,我们本来是要求给定一组属性,也就是一条记录,求它属于某一个类别的概念。通过刚刚的推导,我们知道很奇妙,我们反过来只要求出给定的类别,然后求一组属性的概率,就可以解决刚刚的分类问题。

如何来求给定类别,求一组属性的概率呢,这个本身还是比较难以解决的,所以这个时候我要让计算方便简单,我们引入一个条件独立性假设,也就是假设属性A1到An和类别之间都是条件独立的,就是类别给定了以后,然后条件之间都是互相独立的。有了条件独立性假设以后我们就可以把上面的这个表达方式子表达方法简化一下,也就是给定类别求A1到An的概率变成了每一个类别取每一个属性的概率,每一个类别取每一个属性的概率然后他们的乘积,因为有条件独立性假设,这个条件之间是独立的属性之间是独立的,就是类别值和每一个属性有关系,然后它们的乘积就是我们要求的答案。这里大家要注意了,给定一个类别,求一个属性,因为我们类别有多个值,二元分里有两个值,然后我们的属性的话也会有取几个值,例如属性如果是家庭收入的话具有低中高,那么类别的话是购买房车的话就有是和否,我们每一种可能性都要求的。

这个要去球的话,通过样本数据里面是比较容易计算出来的,也就是我们能够估计给定每一个类别以及它去每一个属性的概率吗,对所有的类别和属性来说,当然是可以的.

在这样的情况下面我们一个新的样本点、一个新的记录、一条新的数据就可以把它分类到某一个类里C,然后我们只要求出来给定了某一个类别,取每一个属性的概率的乘积,这里是乘积再乘以每一个类别的单独概率,然后如果是哪一个最大就是哪一个类。

这就是我们推导的这个关键的一个思路,也就是本身给定了一组属性,然后求它某个类别的概率然后反过来变成了我们要知道每一个类别,它取每一个属性的概率。我们在这个推导过程当中很关键引入了一个条件独立性假设,我们把这样一个应用条件假设的分类器叫做朴素分离器,朴素分类器是有好处的避免模型过于复杂,降低模型的维数,可以有效防止过拟合,关于过拟合我们以后要讨论是数据挖掘很重要的一个概念,能够节约模型的计算成本。

我们已故统计科学家Box话来说就是所有的模型都是错误的,但是有些是有用的,也就是我们简化了贝叶斯分类器的计算用了条件独立性假设就是朴素贝叶斯分类器,尽管这一个假设不是一定正确的,但是它是用在实际应用里面体现了它的价值。

image.png

相关文章
|
1月前
|
机器学习/深度学习
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(下)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
|
11天前
|
机器学习/深度学习
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(二)
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(二)
|
11天前
|
机器学习/深度学习 数据采集 数据可视化
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(一)
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(一)
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(一)
|
1月前
|
机器学习/深度学习 数据可视化 计算机视觉
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(上)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
|
1月前
|
机器学习/深度学习 算法 数据可视化
R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
|
机器学习/深度学习 移动开发 资源调度
机器学习算法(二): 基于鸢尾花数据集的朴素贝叶斯(Naive Bayes)预测分类
机器学习算法(二): 基于鸢尾花数据集的朴素贝叶斯(Naive Bayes)预测分类
|
机器学习/深度学习 数据可视化
随机森林和KNN分类结果可视化(Sklearn)
随机森林和KNN分类结果可视化(Sklearn)
207 0
|
机器学习/深度学习 人工智能 数据可视化
分类预测:Bayes Classifier-1|学习笔记(一)
快速学习分类预测:Bayes Classifier-1
110 0
分类预测:Bayes Classifier-1|学习笔记(一)
|
数据挖掘 开发者 Python
分类预测:Bayes Classifier-1|学习笔记(二)
快速学习分类预测:Bayes Classifier-1
92 0
分类预测:Bayes Classifier-1|学习笔记(二)
|
数据采集 机器学习/深度学习 人工智能
分类预测:Bayes Classifier -2|学习笔记
快速学习分类预测:Bayes Classifier -2
131 0
分类预测:Bayes Classifier -2|学习笔记