回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>有一个问题明确告诉我不要使用<code>numpy</code>和{<cd2>}来完成这个任务:</p>
<p>给定一个列表列表,每个<code>sublist</code>的长度为2,即[x,y],[p,q],[l,m]…[r,s]]考虑其类似于n行和两列的<code>matrix</code></p>
<p>第一列F只包含5个唯一值(F1、F2、F3、F4、F5)
第二列S将只包含3个唯一值(S1、S2、S3)
你的任务是找到</p>
<pre><code>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
</code></pre>
<p>我为上面的代码编写了以下代码,但是,我得到了以下错误,我不确定是什么问题:</p>
^{pr2}$
<p>另外,我写的代码似乎是实现上述问题的非常糟糕的方法,有更好的方法吗?如果是的话,请你分享。在</p>
<pre><code>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']))
</code></pre>