开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践: 文本相似度计算】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15445
分类预测:Bayes Classifier-1
如果一个病人他脖子僵硬就是给定S,然后他得脑膜炎的概率,求M的概率,我们表达的话就是给定S脖子僵硬求是脑膜炎的概率,我们利用贝叶斯定理,贝叶斯定理大家能够对照一下我们的分母,那一定是给定的S单独概率,分子的话是反过来,要知道给定了M然后S的概率然后再乘以M的单独概率,然后再等于把刚刚的写值带进去给定到M,然后求S的概率,这个是0.5,我们上面求的是0.5,然后再一个乘以M的单独概率1/50000,然后除以S的单独概率1/20,最后求出来它的概率是0.0002。希望大家通过这个例子对贝叶斯定理有一个比较深入的理解。
2、贝叶斯分类器
我们主要是用贝叶斯定理来解决样本数据的分类问题。我们来先看一个假设,假设我们样本数据里面的每一个属性以及那个类的标记,那一个特别的属性,都是一个随机变量,然后我们样本里面给定一条记录,它带有这样一些属性(A1,A2,…,An),连续给定一条样本记录,然后我们要求它属于哪一类,我们类别用C来表示,那么如果我们转换成贝叶斯表达方式的话,概率表达方式的话,那么我们就是来求可以听到A1到An这样一组属性值,也就是给定一条记录,然后求它属于C的概率,这个C的话是类别变量,就是我们的y变量,那这个有几类我们比较容易的是二元分类,它里面C有几个值,最终的话我们是要求那个概率最大的那个谁的值,也就是求给定了A1到An,然后求谁的概率,然后概率的话有几个y值就有几个概率,我们就求那个最大的概率就是那一类。
我们现在考虑一个问题,我们能够从样本数据里面估计出计算出给定的A1到An然后它属于某个C的概率嘛,我们要利用贝叶斯定理来解决。贝叶斯分类器,它的分类原理是通过某对象的先验概率,是A1到An是已知它的先验概率,然后利用贝叶斯公式,我们来计算它的后验概率,就是给定了A1到An我们求他属于某个类别C的概率,即该对象属于某一类的概率,,然后我们最终要选择具有最大后验概率的类作为该对象的类,因为这个C的话有几个值二元分里有两个值,那到底取哪一个值呢?看他的最大后验概率有是那一类取那一个类的值。
我们来看贝叶斯分类器的具体方法,也就是刚刚讲的我们要通过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的概率,那么我们就可以解决了前面讲的分类问题。
3、朴素贝叶斯分类器
我们继续来往下推导,刚刚讲过,我们本来是要求给定一组属性,也就是一条记录,求它属于某一个类别的概念。通过刚刚的推导,我们知道很奇妙,我们反过来只要求出给定的类别,然后求一组属性的概率,就可以解决刚刚的分类问题。
如何来求给定类别,求一组属性的概率呢,这个本身还是比较难以解决的,所以这个时候我要让计算方便简单,我们引入一个条件独立性假设,也就是假设属性A1到An和类别之间都是条件独立的,就是类别给定了以后,然后条件之间都是互相独立的。有了条件独立性假设以后我们就可以把上面的这个表达方式子表达方法简化一下,也就是给定类别求A1到An的概率变成了每一个类别取每一个属性的概率,每一个类别取每一个属性的概率然后他们的乘积,因为有条件独立性假设,这个条件之间是独立的属性之间是独立的,就是类别值和每一个属性有关系,然后它们的乘积就是我们要求的答案。这里大家要注意了,给定一个类别,求一个属性,因为我们类别有多个值,二元分里有两个值,然后我们的属性的话也会有取几个值,例如属性如果是家庭收入的话具有低中高,那么类别的话是购买房车的话就有是和否,我们每一种可能性都要求的。
这个要去球的话,通过样本数据里面是比较容易计算出来的,也就是我们能够估计给定每一个类别以及它去每一个属性的概率吗,对所有的类别和属性来说,当然是可以的.
在这样的情况下面我们一个新的样本点、一个新的记录、一条新的数据就可以把它分类到某一个类里C,然后我们只要求出来给定了某一个类别,取每一个属性的概率的乘积,这里是乘积再乘以每一个类别的单独概率,然后如果是哪一个最大就是哪一个类。
这就是我们推导的这个关键的一个思路,也就是本身给定了一组属性,然后求它某个类别的概率然后反过来变成了我们要知道每一个类别,它取每一个属性的概率。我们在这个推导过程当中很关键引入了一个条件独立性假设,我们把这样一个应用条件假设的分类器叫做朴素分离器,朴素分类器是有好处的避免模型过于复杂,降低模型的维数,可以有效防止过拟合,关于过拟合我们以后要讨论是数据挖掘很重要的一个概念,能够节约模型的计算成本。
我们已故统计科学家Box话来说就是所有的模型都是错误的,但是有些是有用的,也就是我们简化了贝叶斯分类器的计算用了条件独立性假设就是朴素贝叶斯分类器,尽管这一个假设不是一定正确的,但是它是用在实际应用里面体现了它的价值。