标题: R机器学习:朴素贝叶斯算法的理解与实操 [打印本页] 作者: 乌市泽哥 时间: 2024-12-22 21:18 标题: R机器学习:朴素贝叶斯算法的理解与实操 近来又看了很多贝叶斯算法的一些文章,好多的文章对这个算法表明起来会放一大堆公式,对代数欠好的人来说真的很头疼。本文尝试着用明白话写写这个算法,再做个例子,帮助大家理解和运用。
Naive Bayes is a probabilistic machine learning algorithm based on the Bayes Theorem, used in a wide variety of classification tasks.
贝叶斯算法是分类标题的紧张解决方法,简单但是很强大,在文天职类、垃圾邮件辨认等高维数据(特征超多的数据集)的机器学习领域有紧张应用。基本逻辑就是很多的时候我们很容易知道在不同的因变量的程度上自变量的分布的怎样的,我们要解决的标题是知道了特征的情况然后去预测因变量,实在就是:from P(X|Y), known from the training dataset, to find P(Y|X).朴素贝叶斯算法架起了从from P(X|Y)to find P(Y|X)的桥梁。
要很好的理解朴素贝叶斯的整个过程首先要弄清楚两个东西,一个是条件概率、一个是贝叶斯理论。
条件概率和贝叶斯定理
我们什么理论都不要想,先做一个例子:100个人的数据如下表,按照身份可以分为教师、弟子。按照性别又可以分为男性女性。现在我们尝试得到男性中教师的概率是多少(把性别当做特征,把身份当做结局,这个标题便是知道特征求结局的概率的一个标题)。 这个男性中教师的概率就是条件概率,我们不是单纯的讨教师的概率而是先给了个条件(这个人首先得是男性)。这个时候计算概率的分母会变革。
when you say the conditional probability of A given B, it denotes the probability of A occurring given that B has already occurred.
我们把x当做自变量,y当做因变量。通过贝叶斯定理我们就把P(X|Y)到P(Y|X)的路径打通了。这个话要反复读。
现实中,我们网络来一波练习数据,我们是很容易知道在y的不同程度x是怎样分布的(就像上面的例子中我们很容易知道教师中男性的比例是怎样的,如果把性别当做自变量、身份当做因变量的话,很容易知道P(X|Y)),通过贝叶斯公式我们可以求得x分布确定的情况下,y取不同程度的概率(就像上面例子中我们知道了自变量性别是男性可以求的其为教师的概率为0.2,得到P(Y|X)).
也就是说贝叶斯定理乐成的让我们可以从自变量的分布预测因变量。
The Bayes Rule is a way of going from P(X|Y), known from the training dataset, to find P(Y|X). 现实中我们会有很多的x,我们会想着直接将多个贝叶斯公式相乘来处理,这么做就暗含了一个朴素的假设就是所有的x都是独立的,这么一种朴素假设加持的贝叶斯就是朴素贝叶斯:
这个名字只是由于它有这么一个朴素的假设:
The name naive is used because it assumes the features that go into the model is independent of each other. That is changing the value of one feature, does not directly influence or change the value of any of the other features used in the algorithm.
统共有3个、首先是先验概率: Compute the ‘Prior’ probabilities for each of the class of fruits
首先就是计算先验,就是每个种类水果的概率,可以看到在1000个水果中有800个香蕉,300个橘子,200个其他,那么我们可以得到各种水果的先验分别为0.5,0.3,0.2.
P(Y=Banana) = 500 / 1000 = 0.50 P(Y=Orange) = 300 / 1000 = 0.30 P(Y=Other) = 200 / 1000 = 0.20 再是证据概率 Compute the probability of evidence that goes in the denominator.
第二步就是计算证据的概率,也就是所有特征出现的概率,我们的特征有3个,x1到x3的证据概率分别为0.5,0.65,0.8。
P(x1=Long) = 500 / 1000 = 0.50 P(x2=Sweet) = 650 / 1000 = 0.65 P(x3=Yellow) = 800 / 1000 = 0.80 Compute the probability of likelihood of evidences that goes in the numerator.
第三步是计算证据似然的概率,好比说香蕉long这个特征为真的概率就为P(Long | Banana) = 400/500 = 0.8。 Substitute all the 3 equations into the Naive Bayes formula, to get the probability that it is a banana. 末了一步就是将前三步的效果带入朴素贝叶斯公式就可以得到在某组特征下水果分别为香蕉,为橘子,为其他水果的概率。例如在特征long、sweet、yellow为真的情况下,水果为香蕉的概率为0.252,为橘子的概率为0,为其他水果的概率为0.01875.