根据 pandas 列中的信号计算一组性能指标
Calculate a set of performance metrics from signals in a pandas column
我有一个包含三个信号的数据框,如下所示:
rr_manually_cleaned
是ground truth信号
rr_noisy
是原始噪声信号
rr_filtered
是已清除
的异常检测器的输出
rr_noisy 来自检测到的异常
评估异常检测器的性能 - 我想找出 FP、FN 等
对于 FN(假阴性)- 有
rr_filtered
中但不在 rr_manually_cleaned
中的数据点(即 NaN
值),因为这意味着异常检测器未能检测到
异常
对于 FP(误报)——这就是数据点的情况
存在于 rr_manually_cleaned
但不存在于 rr_filtered
意味着
异常检测器检测到不应该出现的异常
使用此设置 - 计算 FP、FN 和其他相关性能指标(F1、Precision、Recall 等)的最佳方法是什么?是否可以直接由此构建混淆矩阵?
尝试使用 isna() 测试。
df.loc[(~df['rr_filtered'].isna()) & (df['rr_manually_cleaned'].isna()), 'TEST'] = 'FN'
df.loc[(~df['rr_manually_cleaned'].isna()) & (df['rr_filtered'].isna()), 'TEST'] = 'FP'
我有一个包含三个信号的数据框,如下所示:
rr_manually_cleaned
是ground truth信号rr_noisy
是原始噪声信号rr_filtered
是已清除
的异常检测器的输出 rr_noisy 来自检测到的异常
评估异常检测器的性能 - 我想找出 FP、FN 等
对于 FN(假阴性)- 有
rr_filtered
中但不在rr_manually_cleaned
中的数据点(即 NaN 值),因为这意味着异常检测器未能检测到 异常对于 FP(误报)——这就是数据点的情况 存在于
rr_manually_cleaned
但不存在于rr_filtered
意味着 异常检测器检测到不应该出现的异常
使用此设置 - 计算 FP、FN 和其他相关性能指标(F1、Precision、Recall 等)的最佳方法是什么?是否可以直接由此构建混淆矩阵?
尝试使用 isna() 测试。
df.loc[(~df['rr_filtered'].isna()) & (df['rr_manually_cleaned'].isna()), 'TEST'] = 'FN'
df.loc[(~df['rr_manually_cleaned'].isna()) & (df['rr_filtered'].isna()), 'TEST'] = 'FP'