我正在执行一个天真的贝斯分类。 编程的集体智慧 引入了这一主题通过描述Bayes定为:

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

以及一个具体实例有关的文件分类:

Pr(Category | Document) = Pr(Document | Category) x Pr(Category) / Pr(Document)

我希望有人能向我解释符号的使用在这里做什么 Pr(A | B)Pr(A) 意思?它看起来像某种形式的功能,但随后有什么管道("|")的意思是,等等?

有帮助吗?

解决方案

  • Pr(A|B)=概率的发生,鉴于B已经发生了
  • Pr(A)=的概率发生的事情

但是,上述计算相对于有条件的概率。你想要什么,是一个分类,采用这一原则来决定是否属于一类别基于以前的概率。

看看 http://en.wikipedia.org/wiki/Naive_Bayes_classifier 对于一个完整的例子

其他提示

我认为他们已经得到了你覆盖的基础。

Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)

读取:一个给定的B的概率是相同的的B中给出的A倍A的概率除以B的概率你试图数字它通常使用时,可以测量B的概率的概率如果进行B的带领我们相信A.或者,换句话说,我们真正关心的一个,但我们可以量度B更直接,让我们和我们可以开始测量。

让我给你一个推导,使这个更容易编写代码。它来自犹太珍珠。我这个有点挣扎,但之后我意识到珍珠如何帮助我们把理论转化为代码,光打开我。

之前赔率:

O(H) = P(H) / 1 - P(H)

似然比:

L(e|H) = P(e|H) / P(e|¬H)

后验概率:

O(H|e) = L(e|H)O(H)

在英国,我们是在说,你有兴趣(H为假设)的东西的几率仅仅是时候你找到的东西是真实的时代划分,你发现它是不正确的数量。所以,说一个房子每天都被抢了10000。这意味着,你有被抢劫,没有任何其他证据被认为是1 / 10,000的机会。

在接下来的一个是测量你在寻找证据。什么是看到你所看到的,当你的问题是真实的看到你所看到的,当你的问题是不正确的证据的概率分成证据的可能性。说你是听你的防盗报警熄灭。你多久拿到报警时,它应该熄灭(有人打开一个窗口,当报警后)与当它不应该走下车(风设置闹铃关闭)。如果你有一个防盗触发警报的95%的机会和别的设定的1%的几率触发警报,那么你有95.0可能性。

您整体的信仰只是可能性*的前期差别。在这种情况下,它是:

((0.95/0.01) * ((10**-4)/(1 - (10**-4))))
# => 0.0095009500950095

我不知道这使得任何更加清晰,但它往往更容易有一些代码,在可能性跟踪前期差别的,其他代码的样子,和一个代码块多到这些信息结合起来

我已用Python实现它。这很容易理解,因为贝叶斯所有公式定理都是独立的功能:

#Bayes Theorem

def get_outcomes(sample_space, f_name='', e_name=''):
    outcomes = 0
    for e_k, e_v in sample_space.items():
        if f_name=='' or f_name==e_k:
            for se_k, se_v in e_v.items():
                if e_name!='' and se_k == e_name:
                    outcomes+=se_v
                elif e_name=='':
                    outcomes+=se_v
    return outcomes

def p(sample_space, f_name):
    return get_outcomes(sample_space, f_name) / get_outcomes(sample_space, '', '')

def p_inters(sample_space, f_name, e_name):
    return get_outcomes(sample_space, f_name, e_name) / get_outcomes(sample_space, '', '')

def p_conditional(sample_space, f_name, e_name):
    return p_inters(sample_space, f_name, e_name) / p(sample_space, f_name)

def bayes(sample_space, f, given_e):
    sum = 0;
    for e_k, e_v in sample_space.items():
        sum+=p(sample_space, e_k) * p_conditional(sample_space, e_k, given_e)
    return p(sample_space, f) * p_conditional(sample_space, f, given_e) / sum

sample_space = {'UK':{'Boy':10, 'Girl':20},
                'FR':{'Boy':10, 'Girl':10},
                'CA':{'Boy':10, 'Girl':30}}

print('Probability of being from FR:', p(sample_space, 'FR'))
print('Probability to be French Boy:', p_inters(sample_space, 'FR', 'Boy'))
print('Probability of being a Boy given a person is from FR:', p_conditional(sample_space, 'FR', 'Boy'))
print('Probability to be from France given person is Boy:', bayes(sample_space, 'FR', 'Boy'))

sample_space = {'Grow' :{'Up':160, 'Down':40},
                'Slows':{'Up':30, 'Down':70}}

print('Probability economy is growing when stock is Up:', bayes(sample_space, 'Grow', 'Up'))

PR(A | B):A的条件概率:即A的概率,因为我们所知道的是乙

PR(A):A的先验概率

Pr为概率,PR(A | B)。是条件概率

检查维基百科的详细资料。

管道(|)的意思是 “给定的”。 一个给定的B的概率等于给定甲X PR(A)/ PR(B)B的概率

根据您的问题,我可以强烈建议您首先需要阅读概率论的一些本科生的书。如果没有这个,你就不会与朴素贝叶斯分类器的任务正常推进。

我建议你这本书 http://www.athenasc.com/probbook.html或看看 MIT开放

在管被用来表示条件概率。 PR(A | B)= A给定B的概率

实施例: 比方说,你是不是感觉很好,你对冲浪症状的网页。和互联网告诉你,如果你有这些症状,那么你有某某病。

在这种情况下: PR(A | B)是你试图找到答案,这就是: 的你的概率具有XYZ鉴于你有某些症状。

PR(A)是具有所述疾病XYZ

的概率

PR(B)是具有那些症状的概率

PR(B | A)是您从互联网上,这是找出哪些: 有鉴于您有疾病症状的可能性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top