存在2组值,一组为预测值,一组为实际值,现要求准确率和误报率是多
需求:存在2组值,一组为预测值,一组为实际值,现要求准确率和误报率是多少,并输出相应值
需求分析:可将这2组值存储为字典,数值本身可为键,字典的值为标记,可初始为0,可通过集合的常见操作(并集/交集/差集)可得相应的解决办法。
知识储备:
1、集合的常见操作,并集/交集/差集;可参见:https://www.php.cn/python-tutorials-411416.html
2、集合的访问/复制等,可参见:https://www.jb51.net/article/71264.htm
解决方案:存在2个字典dict1和dict2, dict1字典为预测的一组数值,dict2为实际值
dict1 = {'lily':0, 'kitty':0, 'dandy':0}
dict2 = {'nancy':0, 'kitty':0, 'lily':0}
# 预测出的值
# 通过keys()或者items()方法执行常见的集合操作(并集/差集/交集),如:
# 找出 在两个字典中读存在的键
# print(a.keys() & b.keys())
# 找出 存在a却不存在b的键
# print(a.keys() -b.keys())
# 找出两个字典中,键和值都同时相等的数据
# print(a.items() & b.items())
set1 = dict1.keys() & dict2.keys()
for keyin set1:
dict1[key] =1
dict2[key] =1
precisionRate =len(set1)/len(dict2)
print("准确率是: %s" % precisionRate)
# 预测出的数值
for kin set1:
print(k)
falseRate = (len(dict1)-len(set1))/len(dict2)
print("误报率率是: %s" % falseRate)
# 误报的实际数值
for kin dict1.keys()-dict2.keys():
print(k)