微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当结果标签为变量长度时,如何在文档重复数据删除任务中获得准确度、召回率、精度等?

如何解决当结果标签为变量长度时,如何在文档重复数据删除任务中获得准确度、召回率、精度等?

所以我正在使用 LSH: Locality Sensitive Hashing 解决重复数据删除问题。

所以我知道文件的副本。让我们假设我们有类似的东西:

{'group1': [text1,text2,text3],'group2': [text4],'group3': [text5,text6],}

所以我可以很容易地得到重复项,就像 text1text2text3 的重复项,反之亦然。 通过使用 Snapy python LSH package,它给我的结果类似

{'text1': ['text1','text5'],'text2': []
'text4: ['text6']}

如您所见,也有误报(在 text1 中)和误报(在 text2 中)。 我如何在这里定义一个新指标,如果我想根据超参数调整来评估该算法的工作,我可以得到一个增加或减少的数字?

我不能直接使用 Top-K,因为有些实例只有 1 个重复,有些实例超过 N。此外,在结果中,也有空,FPFN。我什至不能使用 sklearn.metrics.accuracy 左右,因为我们有超过 1 个重复的每个实例。

对于为此找到一个指标的任何帮助表示赞赏。

更新: 我想出了以下功能。如果这是正确的指标,有人可以尝试给我建议,如果是,我如何将这 3 个数字组合成一个数字?

def metric(actual:[set],predicted:[set]):
    len_true = len(actual)
    len_pred = len(predicted)
    
    TP = len(actual.intersection(predicted)) # common in both are True Positive
    FP = len(predicted.difference(a.intersection(b))) # Extra in predicted are False Positive
    Missing = len(actual.difference(a.intersection(b))) # Extra in actual are Missing
    
    TP = TP/len_pred if len_pred > 0 else 0 # increase this value.  between 0 and 1
    FP = FP/len_pred if len_pred > 0 else 0 # Decrease this value. IS between 0 and 1
    Missing = Missing/len_true # value is between 0-1 . Decrease this value
    
    return TP,FP,Missing

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。