-
21-09-2019 - |
题
我正在执行一个天真的贝斯分类。 编程的集体智慧 引入了这一主题通过描述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的概率
根据您的问题,我可以强烈建议您首先需要阅读概率论的一些本科生的书。如果没有这个,你就不会与朴素贝叶斯分类器的任务正常推进。
在管被用来表示条件概率。 PR(A | B)= A给定B的概率
实施例: 比方说,你是不是感觉很好,你对冲浪症状的网页。和互联网告诉你,如果你有这些症状,那么你有某某病。
在这种情况下: PR(A | B)是你试图找到答案,这就是: 的你的概率具有XYZ鉴于你有某些症状。
PR(A)是具有所述疾病XYZ
的概率PR(B)是具有那些症状的概率
PR(B | A)是您从互联网上,这是找出哪些: 有鉴于您有疾病症状的可能性。