请参阅我对类似问题的回答。要点是:
OneClassSVM从根本上不支持将决策转换为概率分数,因此您无法将必要的分数传递到需要改变分数阈值的函数中,例如ROC或Precision-Recall曲线和分数。
您可以通过在整个输入数据上计算OneClassSVM决策函数的最大值
MAX
,然后调用它,然后y
通过计算对给定观察值的预测进行评分,来近似估算这种分数y_score = MAX - decision_function(y)
。使用这些分数来传递
y_score
诸如average_precision_score
等的函数,这些函数将接受非阈值分数而不是概率。最后,请记住,ROC对OneClassSVM的物理意义不大,特别是因为OneClassSVM用于存在预期的巨大类别失衡(异常值与非异常值)并且ROC无法准确地权衡相对成功的情况在少量异常值上。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)