首页 PaddleNLP 帖子详情
11123
收藏
快速回复
PaddleNLP 其他学习资料 290 1
11123
收藏
快速回复
PaddleNLP 其他学习资料 290 1

import math
# 定义概率分布
p = {'rain_rain': 1/8,
'rain_no_rain': 1/16,
'no_rain_rain': 3/16,
'no_rain_no_rain': 10/16}

# (1) 天气预报准确率
p_no_rain = p['rain_no_rain'] + p['no_rain_no_rain']
accuracy = p_no_rain / (1 - p['rain_rain'])
print('天气预报准确率为:', accuracy)

# (2) 气象预报提供的信息量I(X;Y)
H_X = - (p['rain_rain'] * math.log2(p['rain_rain']) + p['no_rain_no_rain'] * math.log2(p['no_rain_no_rain']))
H_X_given_Y = - (p['rain_rain'] * math.log2(p['rain_rain']) + p['rain_no_rain'] * math.log2(p['rain_no_rain'])
+ p['no_rain_rain'] * math.log2(p['no_rain_rain']) + p['no_rain_no_rain'] * math.log2(p['no_rain_no_rain']))
I_X_Y = H_X - H_X_given_Y
print('气象预报提供的信息量为:', I_X_Y)

# (3) 如果天气预报总预报无雨,求此时气象预报的准确率以及气象预报所提供的信息量I(X;Y)
p_no_rain = p['no_rain_no_rain']
accuracy = p_no_rain / (1 - p['rain_no_rain'])
print('天气预报总预报无雨时,气象预报准确率为:', accuracy)

H_X = - (p['rain_rain'] * math.log2(p['rain_rain']) + p['no_rain_no_rain'] * math.log2(p['no_rain_no_rain']))
H_X_given_Y = - (p['rain_no_rain'] * math.log2(p['rain_no_rain']) + p['no_rain_no_rain'] * math.log2(p['no_rain_no_rain']))
I_X_Y = H_X - H_X_given_Y
print('天气预报总预报无雨时,气象预报提供的信息量为:', I_X_Y)

# (4) 判断哪种情况下天气预报准确率更高、哪种情况下天气预报更有意义
if accuracy > p_no_rain:
print('在总预报有雨时,天气预报准确率更高')
else:
print('在总预报无雨时,天气预报准确率更高')
if I_X_Y > 0:
print('在总预报有雨时,天气预报更有意义')
else:
print('在总预报无雨时,天气预报更有意义')

0
收藏
回复
全部评论(1)
时间顺序
英子别开门
#2 回复于2023-06

真棒,乔

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户