根据 python pandas 数据框的两列中的值计算精度和召回率?
Calculate precision and recall based on values in two columns of a python pandas dataframe?
我有以下格式的数据框:
Column 1 (Expected Output) | Column 2 (Actual Output)
[2,10,5,266,8] | [7,2,9,266]
[4,89,34,453] | [4,22,34,453]
我想找出实际输入中预期的项目数。例如,对于第 1 行,预期和实际输出中只有 2 和 266,这意味着精度 = 2/5 和召回率 = 2/5。
因为我有超过 500 行,我想找到某种公式来计算每行的精度和召回率。
像这样设置你的 df:
df = pd.DataFrame({"Col1": [[2,10,5,266,8],[4,89,34,453]],
"Col2":[[7,2,9,266],[4,22,34,453]]})
您可以通过以下方式找到匹配值:
df["matches"] = [set(df.loc[r, "Col1"]) & set(df.loc[r, "Col2"]) for r in range(len(df))]
您可以从中计算准确率和召回率。
但请注意,您的示例没有考虑预期输出和实际输出列表中元素的顺序,如果这很重要,并且如果"Expected Output" 列表。
我有以下格式的数据框:
Column 1 (Expected Output) | Column 2 (Actual Output)
[2,10,5,266,8] | [7,2,9,266]
[4,89,34,453] | [4,22,34,453]
我想找出实际输入中预期的项目数。例如,对于第 1 行,预期和实际输出中只有 2 和 266,这意味着精度 = 2/5 和召回率 = 2/5。
因为我有超过 500 行,我想找到某种公式来计算每行的精度和召回率。
像这样设置你的 df:
df = pd.DataFrame({"Col1": [[2,10,5,266,8],[4,89,34,453]],
"Col2":[[7,2,9,266],[4,22,34,453]]})
您可以通过以下方式找到匹配值:
df["matches"] = [set(df.loc[r, "Col1"]) & set(df.loc[r, "Col2"]) for r in range(len(df))]
您可以从中计算准确率和召回率。
但请注意,您的示例没有考虑预期输出和实际输出列表中元素的顺序,如果这很重要,并且如果"Expected Output" 列表。