CCFSP 202012-2最终预测的最佳阈值
题目背景
考虑到安全指数是一个大范围的整数,而配菜很可能想不出是否真的安全,丹顿决定设置一个阈值,将安全指数Y转化为具体的预测结果——“会通不过这门课”或“不会通不过这门课”。
因为安全指数越高,学生缺课的可能性越低,所以当y时,Denton会预测本学期菜品安全,不会缺课。相反,如果是y,丹顿会劝诫蔡晓:“期末你这门课会不及格,所以不要说你事先没说。”
那么如何设置这个门槛呢?丹顿将从过去寻找答案。
题目描述
具体来说,Denton对上学期m名学生的安全指数进行了评估,其中第ith (1 I m)名学生的安全指数为yi,为[0,108]范围内的整数;同时,学生上学期不及格的成绩记录为resulti0,1,其中0表示不及格,1表示不及格。
因此,丹顿使用预测(y)来表示根据阈值将安全指数Y转换成的具体预测结果。
如果predict(yj)与resultj相同,则意味着当阈值为时,Denton正确预测了第J个同学是否没有通过课程。否则,指示预测误差。
predict(y)={0(y)1(y)
最后,Denton设计了以下公式来计算最佳阈值?
?=maxargmaxyi?j=1m(predict(yj)=result j)
该公式也可以等效地表示为以下规则:
最佳阈值仅在yi中选取,即与某同学的安全指数相同;
根据这个阈值,预测出这M个学生最后一个学期的失败次数,正确次数最多(即准确率最高)。
当多个阈值可以达到最高精度时,选择最大的阈值。
输入格式
从标准输入中读入数据。
输入的第一行包含正整数m。
接下来,输入m行,其中第i(1im)行包括由空格分隔的两个整数yi和resulti,其含义如上所述。
输出格式
输出到标准输出。
输出表示最佳阈值的整数?
样例1输入
六
0 0
1 0
1 1
3 1
5 1
7 1
样例1输出
三
样例1解释
根据规则1,最佳阈值的选择范围是0,1,3,5,7。
当=0时,正确预测数为4;
当=1时,正确预测数为5;
当=3时,正确预测数为5;
当=5时,正确预测数为4;
当=7时,正确预测数为3。
当阈值选择为1或3时,预测精度最高。
因此,根据规则2,最佳阈值的选择范围减小到1,3。
根据规则三,?=max1,3=3 .
样例2输入
八
5 1
5 0
5 0
2 1
3 0
4 0
100000000 1
1 0
样例2输出
100000000
子任务
70%的试验数据保证m200;
所有试验数据保证2m105。
if __name__=='__main__':
m=int(输入())
listy=list()
listr=list()
yNum=dict()
key=set()
电流=0
而(当前m):
ls=输入()。拆分(“”)
y=int(ls[0])
r=整数(1)
listy.append(y)
listr.append(r)
#打印(列表)
#打印(列表)
电流=1
键=设置(列表)
#打印(键)
因为我在:键
yNum[i]=0
对于(0,m):范围内的索引
如果listy[index] i和listr[index]==0:
yNum[i]=1
如果listy[index]=i和listr[index]==1:
yNum[i]=1
#打印(同步)
res=[]
对于键,yNum.items()中的值为:
if值==max(yNum.values()):
max_key=key
res.append(键)
打印(最大分辨率)
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/92775.html