“3.7 F1 Score”的版本间的差异
来自CloudWiki
(创建页面,内容为“网络例题: *描述 小Hi和他的小伙伴们一起写了很多代码。时间一久有些代码究竟是不是自己写的,小Hi也分辨不出来了。…”) |
|||
第26行: | 第26行: | ||
4 | 4 | ||
+ | |||
+ + | + + | ||
+ | |||
+ - | + - | ||
+ | |||
- + | - + | ||
+ | |||
- - | - - | ||
+ | |||
样例输出 | 样例输出 | ||
50.00% | 50.00% | ||
+ | |||
+ | ac代码 | ||
+ | |||
+ | #include<cstdio> | ||
+ | #include<cstring> | ||
+ | #include<algorithm> | ||
+ | #include<iostream> | ||
+ | #include<vector> | ||
+ | #include<iomanip> | ||
+ | using namespace std; | ||
+ | int main() | ||
+ | { | ||
+ | int n; | ||
+ | double tp=0,fp=0,tn=0,fn=0; | ||
+ | char ans, pre; | ||
+ | cin >> n; | ||
+ | for (int i = 0;i < n;i++) | ||
+ | { | ||
+ | cin >> ans >> pre; | ||
+ | if (ans == '+'&&pre == '+') tp++; | ||
+ | else if (ans == '+'&&pre == '-') fn++; | ||
+ | else if (ans == '-'&&pre == '-') tn++; | ||
+ | else if (ans == '-'&&pre == '+') fp++; | ||
+ | } | ||
+ | double p = (tp + fp)==0?1:tp / (tp + fp); | ||
+ | double r = (tp + fn)==0?1:tp / (tp + fn); | ||
+ | double res = (p + r)==0? 2*p*r :2*p*r /(p + r); | ||
+ | printf("%.2lf%s\n", res*100,"%"); | ||
+ | return 0; | ||
+ | } |
2018年5月31日 (四) 14:38的版本
网络例题:
- 描述
小Hi和他的小伙伴们一起写了很多代码。时间一久有些代码究竟是不是自己写的,小Hi也分辨不出来了。
于是他实现了一个分类算法,希望用机器学习实现自动分类。
为了评价这个分类算法的优劣,他选出了N份有标记的代码作测试集,并决定用F1 Score作为评价标准。
给出N份代码的实际作者是不是小Hi以及分类算法预测的结果,请你计算F1 Score。
- 输入
第一行包含一个整数N。(1 <= N <= 1000)
以下N行每行包含两个字符(+或-)。第一个字符代表这份代码的实际作者是不是小Hi(+代表是,-代表不是),第二个代表预
测的作者是不是小Hi(+代表是,-代表不是)。
- 输出
一个百分数,X%,代表答案,X保留两位小数。
样例输入
4
+ +
+ -
- +
- -
样例输出
50.00%
ac代码
- include<cstdio>
- include<cstring>
- include<algorithm>
- include<iostream>
- include<vector>
- include<iomanip>
using namespace std; int main() {
int n; double tp=0,fp=0,tn=0,fn=0; char ans, pre; cin >> n; for (int i = 0;i < n;i++) { cin >> ans >> pre; if (ans == '+'&&pre == '+') tp++; else if (ans == '+'&&pre == '-') fn++; else if (ans == '-'&&pre == '-') tn++; else if (ans == '-'&&pre == '+') fp++; } double p = (tp + fp)==0?1:tp / (tp + fp); double r = (tp + fn)==0?1:tp / (tp + fn); double res = (p + r)==0? 2*p*r :2*p*r /(p + r); printf("%.2lf%s\n", res*100,"%"); return 0;
}