【机器学习】Naive Bayes朴素叶贝斯方法(machine learning)

学习机器学习之前,先来回顾一下统计学的基础知识


在A和B的合集里A跟B同时出现


B的集里出现A


名字死记硬背一下
product rule


很关键

entropy(熵):测量不确定性,entropy越高,不确定性越高(harder to predict)


伯努利分布(Bernoulli distribution):又称为两点分布,试验结果只是两种可能性,比如扔硬币的正反面。

二项分布(binomial distribution):将伯努利试验独立地重复n次称为n重伯努利试验,独立是指每次试验结果互相不影响,二项分布是n重伯努利试验中正例发生次数的离散概率分布,也就是说,抛n次硬币,出现正面的次数的概率分布。 

多项分布(multinomial distribution):多项分布是对二项分布的扩展,二项分布是单变量分布,而多项分布是多变量分布。二项分布的典型例子是抛硬币,每次试验有正反两种对立的可能,多项分布的例子是扔骰子,每次试验有多种可能,进行多次试验,多项分布描述的是每种可能发生次数的联合概率分布。 

朴素贝叶斯方法(Naive Bayes)

朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用。这个算法叫做Naïve Bayes,但是它到底naive(朴素)在哪里呢?朴素贝叶斯分类器采用了“属性条件独立假设”(attribute conditional independent assumption),用通俗的话来讲,就是一个属性,或者是我们所说的特征,相互之间是独立的;也正是有了这个假设,朴素贝叶斯分类器才能做这么多事情,在监督学习的世界里有着这么广泛的应用。接下来进入正题,看看朴素贝叶斯分类器究竟是怎么工作的。

先修知识:基本的概率论与数理统计,基本的机器/统计学习概念

什么是分类

要了解朴素贝叶斯分类器,首先要知道什么才是分类(classification)。分类是一种确定数据类别(category)的问题,比如确定西瓜好坏、天气阴晴,或者是某一天潮涨潮落、花开花谢,这样的问题属于分类中的二分类(binary classification)问题;如“赤橙黄绿青蓝紫,谁持彩练当空舞”这样的问题,则是多分类(multi-class classification)问题。如果你是熟悉用回归(regression)这种输出结果为连续的算法来预测数据,那么分类就是就可以当做是回归的离散版本,例如Logistic回归就是一个很经典的回归算法转化为分类算法的案例。分类的思想在人类世界中比比皆是,比如人类就属于生物,生物中的动物,而且是动物中的哺乳类动物。如果还要细分,那么人类则是属于哺乳纲灵长目人科。如果有一天我们发现了一个新的生物,或许不需要生物学家们的努力,我们自己就能训练出一个分类器分类。如果要让机器去给没有类别的茫茫数据分类,那就是类聚(clustering)了。

朴素贝叶斯分类器训练

前面的理论看起来可能很无聊,下面用实际的例子介绍贝叶斯分类器的训练。scikit-learn是Python上一个非常棒的机器学习工具包,其中包含的莺尾花数据集(Iris dataset)非常适合新手练手使用。Iris数据集的输出空间为


,也就是训练的输出只可能是这三个;输入则是一个简单的四维向量,包含了Sepal length、Sepal width、Petal length和Petal width 四个特征。数据分布如下图所示(仅显示两个特征):



拉普拉斯平滑(Laplace smoothing)






这里出现了两个0,需要使用smoothing


注意这里用的不是laplace smoothing,而是把0那个数改成一个玄学数字(接近0的数)


这里是laplace smoothing(+1)


参考:https://blog.csdn.net/jteng/article/details/54632311

作者:Victor

你可能感兴趣的:(【机器学习】Naive Bayes朴素叶贝斯方法(machine learning))