减少误报 ML 模型
Reducing False positives ML models
在训练 ML 模型时,是否有一种很好的方法来限制误报?
假设您从一个包含两个 class 的平衡数据集开始。您为二进制 classification 开发了一个 ML 模型。由于任务很简单,输出分布将分别在 0 和 1 处达到峰值,并在 0.5 左右重叠。然而,你真正关心的是你的误报率是可持续的,不能超过一定数量。
所以充其量你希望 pred > 0.8 你只有一个 class.
目前我正在对两个 class 进行加权以惩罚 class“0”上的错误。
history = model.fit(..., class_weight={0:5, 1:1}, ...)
正如预期的那样,它确实降低了 pred > 0.8 区域的 fpr,当然它会恶化 class 1.
的召回率
我想知道是否有其他方法可以执行此操作。
谢谢
根据你的问题,你可以考虑一个-class classification svm。这篇文章可能有用:https://towardsdatascience.com/outlier-detection-with-one-class-svms-5403a1a1878c。这篇文章还说明了为什么一个 class class 化比其他一些 class 化技术更值得考虑,例如 oversampling/undersampling 或 class 加权。不过当然要看你想解决什么问题了。
在训练 ML 模型时,是否有一种很好的方法来限制误报?
假设您从一个包含两个 class 的平衡数据集开始。您为二进制 classification 开发了一个 ML 模型。由于任务很简单,输出分布将分别在 0 和 1 处达到峰值,并在 0.5 左右重叠。然而,你真正关心的是你的误报率是可持续的,不能超过一定数量。 所以充其量你希望 pred > 0.8 你只有一个 class.
目前我正在对两个 class 进行加权以惩罚 class“0”上的错误。
history = model.fit(..., class_weight={0:5, 1:1}, ...)
正如预期的那样,它确实降低了 pred > 0.8 区域的 fpr,当然它会恶化 class 1.
的召回率我想知道是否有其他方法可以执行此操作。
谢谢
根据你的问题,你可以考虑一个-class classification svm。这篇文章可能有用:https://towardsdatascience.com/outlier-detection-with-one-class-svms-5403a1a1878c。这篇文章还说明了为什么一个 class class 化比其他一些 class 化技术更值得考虑,例如 oversampling/undersampling 或 class 加权。不过当然要看你想解决什么问题了。