在统计中
如果您预测值为 1,而原始值为 1,则这称为真阳性 (TP)
如果预测为 0 且原始值为 1,则为假阴性 (FN)
如果预测为 1,原始值为 0,则为假阳性 (FP)
如果预测为 0 且原始值为 0,则为真阴性 (TN)
F1 score是一种衡量2个数据集之间关系的方法
是这样计算的
我有一个包含 1000 多个预测结果的文件
每个值为 0 或 1
看起来像这样
Label 0 1 2 .... 0 1 2 ...
--------------------------------------------------
0 0 1 0 1 1
1 0 0 1 0 1
0 1 1 0 0 0
0 0 1 0 1 1
1 0 0 0 0 0
1 0 1 0 1 1
0 0 1 1 0 1
1 1 1 1 1 0
0 1 0 1 0 1
1 1 0 0 0 1
1 0 0 0 1 0
1 1 0 1 1 1
0 1 1 1 0 1
0 0 1 0 1 1
0 1 0 1 0 0
1 1 0 0 1 0
0 1 1 1 1 1
0 0 0 1 0 0
0 0 1 0 1 1
0 1 1 1 0 0
我能想到的唯一方法是拥有 1000 多个新列来检测 TP,另一个来检测 FP 和 anorger 1000 用于 TN,另外 1000 用于 FN其中每个都有这个等式 =if(AND(B6=NB6,B6=1), 1, 0) 用于 TP 等等
这不是一个好的解决方案
有没有一种更快更简单的方法来获得这些列中的每一列的 F1 分数,或者甚至更好的 F1 分数微观和宏观?
最佳答案
我今晚不打算完成这个,但我认为测试数据的 B 列和 E 列的公式是
精确:
=COUNTIFS(B2:B21,1,E2:E21,1)/(COUNTIFS(B2:B21,1,E2:E21,1)+COUNTIFS(B2:B21,0,E2:E21,1))
记起=COUNTIFS(B2:B21,1,E2:E21,1)/(COUNTIFS(B2:B21,1,E2:E21,1)+COUNTIFS(B2:B21,1,E2:E21,0))
你可以用同样的方式得到其他人编辑
为清楚起见,我建议使用命名范围。这些范围将锚定到一组特定的行,这些行可能是动态的,但是当它们被拉过这样的东西时会引用不同的列
然后你可以对 TP 使用这样的公式
=COUNTIFS(Original,1,Prediction,1)
和=TP/(TP+FP)
为了精确。关于excel - 在 Excel 中计算 F1 分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71365367/