我有一个表示图的数据框。它具有以下结构:
a,b
b,c
b,d
此图代表共同作者网络。我已经对每个节点进行了蛮力检查,并且如果adge(例如a,b =>节点是论文)具有jaccard相似度>从给定的阈值起,我将保持这一优势。我的结果是与第一个相同的结构数据框。
我现在想为我的预测获取TP,TN,FP和FN的数量,以便计算精度,召回率,准确性和F1得分。如何获得这些值?
仅使用这两个数据帧(原始DF和预测DF),是否有任何方法可以使用Scala计算F1分数?
谢谢你!
答案 0 :(得分:0)
假设您有一个带有“标签”和“预测”列的DataFrame,则可以使用以下过滤方法来计算TP,TN,FP,FN:
val TP = predictions.filter($"prediction"===1 && $"label"===$"prediction").count()
val FP = predictions.filter($"prediction"===1 && $"label"=!=$"prediction").count()
val TN = predictions.filter($"prediction"===0 && $"label"===$"prediction").count()
val FN = predictions.filter($"prediction"===0 && $"label"=!=$"prediction").count()