python 条件概率_使用python查找条件概率

有一个问题明确告诉我不要使用numpy和{}来完成这个任务:

给定一个列表列表,每个sublist的长度为2,即[x,y],[p,q],[l,m]…[r,s]]考虑其类似于n行和两列的matrix

第一列F只包含5个唯一值(F1、F2、F3、F4、F5)

第二列S将只包含3个唯一值(S1、S2、S3)

你的任务是找到a. Probability of P(F=F1|S==S1), P(F=F1|S==S2), P(F=F1|S==S3)

b. Probability of P(F=F2|S==S1), P(F=F2|S==S2), P(F=F2|S==S3)

c. Probability of P(F=F3|S==S1), P(F=F3|S==S2), P(F=F3|S==S3)

d. Probability of P(F=F4|S==S1), P(F=F4|S==S2), P(F=F4|S==S3)

e. Probability of P(F=F5|S==S1), P(F=F5|S==S2), P(F=F5|S==S3)

Ex:

[[F1,S1],[F2,S2],[F3,S3],[F1,S2],[F2,S3],[F3,S2],[F2,S1],[F4,S1],[F4,S3],[F5,S1]]

a. P(F=F1|S==S1)=1/4, P(F=F1|S==S2)=1/3, P(F=F1|S==S3)=0/3

b. P(F=F2|S==S1)=1/4, P(F=F2|S==S2)=1/3, P(F=F2|S==S3)=1/3

c. P(F=F3|S==S1)=0/4, P(F=F3|S==S2)=1/3, P(F=F3|S==S3)=1/3

d. P(F=F4|S==S1)=1/4, P(F=F4|S==S2)=0/3, P(F=F4|S==S3)=1/3

e. P(F=F5|S==S1)=1/4, P(F=F5|S==S2)=0/3, P(F=F5|S==S3)=0/3

我为上面的代码编写了以下代码,但是,我得到了以下错误,我不确定是什么问题:

^{pr2}$

另外,我写的代码似乎是实现上述问题的非常糟糕的方法,有更好的方法吗?如果是的话,请你分享。在A = [['F1','S1'],['F2','S2'],['F3','S3'],['F1','S2'],['F2','S3'],['F3','S2'],['F2','S1'],['F4','S1'],['F4','S3'],['F5','S1']]

dictionary1 = {

'F1S1':0,

'F2S1':0,

'F3S1':0,

'F4S1':0,

'F5S1':0,

'F1S2':0,

'F2S2':0,

'F3S2':0,

'F4S2':0,

'F5S2':0,

'F1S3':0,

'F2S3':0,

'F3S3':0,

'F4S3':0,

'F5S3':0,

}

dictionary2= {

'S1':0,

'S2':0,

'S3':0

}

def compute_conditional_probabilities(A):

for i in range(len(A)):

if(A[i][0]=='F1'& A[i][1]=='S1'):

dictionary1['F1S1'] = dictionary1['F1S1'] +1

dictionary2['S1'] = dictionary2['S1'] +1

if(A[i][0]=='F1'&A[i][1]=='S2'):

dictionary1['F1S2'] = dictionary1['F1S2'] +1

dictionary2['S2'] = dictionary2['S2'] +1

if(A[i][0]=='F1'&A[i][1]=='S3'):

dictionary1['F1S3'] = dictionary1['F1S3'] +1

dictionary2['S3'] = dictionary2['S3'] +1

if(A[i][0]=='F2'&A[i][1]=='S1'):

dictionary1['F2S1'] = dictionary1['F2S1'] +1

dictionary2['S1'] = dictionary2['S1'] +1

if(A[i][0]=='F2'&A[i][1]=='S2'):

dictionary1['F2S2'] = dictionary1['F2S2'] +1

dictionary2['S2'] = dictionary2['S2'] +1

if(A[i][0]=='F2'&A[i][1]=='S3'):

dictionary1['F2S3'] = dictionary1['F2S3'] +1

dictionary2['S3'] = dictionary2['S3'] +1

if(A[i][0]=='F3'&A[i][1]=='S1'):

dictionary1['F3S1'] = dictionary1['F3S1'] +1

dictionary2['S1'] = dictionary2['S1'] +1

if(A[i][0]=='F3'&A[i][1]=='S2'):

dictionary1['F3S2'] = dictionary1['F3S2'] +1

dictionary2['S2'] = dictionary2['S2'] +1

if(A[i][0]=='F3'&A[i][1]=='S3'):

dictionary1['F3S3'] = dictionary1['F3S3'] +1

dictionary2['S3'] = dictionary2['S3'] +1

if(A[i][0]=='F4'&A[i][1]=='S1'):

dictionary1['F4S1'] = dictionary1['F4S1'] +1

dictionary2['S1'] = dictionary2['S1'] +1

if(A[i][0]=='F4'&A[i][1]=='S2'):

dictionary1['F4S2'] = dictionary1['F4S2'] +1

dictionary2['S2'] = dictionary2['S2'] +1

if(A[i][0]=='F4'&A[i][1]=='S3'):

dictionary1['F4S3'] = dictionary1['F4S3'] +1

dictionary2['S3'] = dictionary2['S3'] +1

if(A[i][0]=='F5'&A[i][1]=='S1'):

dictionary1['F5S1'] = dictionary1['F5S1'] +1

dictionary2['S1'] = dictionary2['S1'] +1

if(A[i][0]=='F5'&A[i][1]=='S2'):

dictionary1['F5S2'] = dictionary1['F5S2'] +1

dictionary2['S2'] = dictionary2['S2'] +1

if(A[i][0]=='F5'&A[i][1]=='S3'):

dictionary1['F5S3'] = dictionary1['F5S3'] +1

dictionary2['S3'] = dictionary2['S3'] +1

compute_conditional_probabilities(A)

print('Probability of P(F=F1|S==S1)',(dictionary1['F1S1']/dictionary2['S1']))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值