我有两组数据:预测数据和实际数据。
一种算法最多可预测Predicted中的五个唯一的预定义参数。假设参数是从a到z的字母。 因此,对于一行,我看到正确预测了这些参数中的多少。
Predicted:
Index P1 P2 P3 P4 P5
1 a b c q
2 g
3 s f g v t
Actual:
Index P1 P2 P3 P4 P5
1 a s q r t
2 g
3 t v
生成这些数据帧的代码:
import pandas as pd
predicted = pd.DataFrame.from_records(columns =['P'+str(i) for i in range(1,6)],
data=[['a','b','c','q'],['g'], ['s','f','g','v','t']])
actual = pd.DataFrame.from_records(columns =['P'+str(i) for i in range(1,6)],
data=[['a','s','q','r','t'],['g'], ['t','v']])
For Row1: Correctly predicted parameters: a,q
For Row2: Correctly predicted parameters: g
For Row3: Correctly predicted parameters: t,v
如何计算相同的精度,召回率和准确性?
答案 0 :(得分:0)
要在这里计算准确性,您只需计算预测参数与实际参数匹配的出现次数,而忽略它们均为None
的情况。
有很多方法可以做到这一点,我会选择以下简单的方法:
accuracy = ((predicted==actual) & (predicted.notna() | actual.notna())).sum().sum() / (predicted.notna() | actual.notna()).sum().sum()
您可以验证它是否符合期望的结果(2/11)。
精度/调用对于多类数据来说有些棘手-您可以按标签进行操作,但是这里肯定没有足够的数据。在这种情况下,我会坚持准确...
P.S。我假设您的准确性计算非常简单。如果不是,则应在您的问题中明确指定...