SMOTE 算法和分类:高估预测成功率
SMOTE Algorithm and Classification: overrated prediction success
我遇到了一个找不到任何答案的问题。我有一个二进制class化问题(输出Y=0或Y=1),其中Y=1少数class(实际上Y=1表示公司违约,原始比例=0.02数据框)。
因此,我仅在我的训练集上使用 SMOTE 算法计算过采样(在训练和测试集中拆分我的数据帧之后)。我在我的训练集上训练逻辑回归(比例为 class "defaut"=0.3),然后查看 ROC 曲线和 MSE 以测试我的算法是否能很好地预测默认值。
我在 AUC (AUC=0.89) 和 MSE (MSE=0.06) 方面都获得了很好的结果。
然而,当我尝试更精确、更具体地查看我的预测时,我发现 20% 的违约率没有得到很好的预测。
您是否有一种方法可以很好地评估我的预测质量(对我来说,质量意味着可以很好地预测默认值的预测)。我认为 AUC 是一个很好的标准......
到目前为止,您还有改善我的回归的方法吗?
谢谢
对于每个分类问题,您都可以构建一个 confusion matrix.
这是一个双向输入矩阵,让您不仅可以看到 正确的 positives/true 负数 (TP/TN),这是你的正确预测,但 也 误报 (FP)/漏报 (FN), 大多数时候这是你真正感兴趣的。
FP 和 FN 是您的模型所犯的错误,您可以使用 [=31= 跟踪模型在检测 TP (1-FP) 或 TN (1-FN) 方面的表现]灵敏度或特异性 (link).
请注意,您不能在不降低另一个的情况下改进一个。所以有时你需要选择一个。
一个好的折衷方案是 F1-score,它试图对两者进行平均。
因此,如果您对 默认值 更感兴趣(假设 defaults=Positive Class
),您会更喜欢具有更高 灵敏度的模型。但切记也不要完全忽视特异性。
这里是 R 中的示例代码:
# to get the confusion matrix and some metrics
caret::confusionMatrix(iris$Species, sample(iris$Species))
我遇到了一个找不到任何答案的问题。我有一个二进制class化问题(输出Y=0或Y=1),其中Y=1少数class(实际上Y=1表示公司违约,原始比例=0.02数据框)。 因此,我仅在我的训练集上使用 SMOTE 算法计算过采样(在训练和测试集中拆分我的数据帧之后)。我在我的训练集上训练逻辑回归(比例为 class "defaut"=0.3),然后查看 ROC 曲线和 MSE 以测试我的算法是否能很好地预测默认值。 我在 AUC (AUC=0.89) 和 MSE (MSE=0.06) 方面都获得了很好的结果。 然而,当我尝试更精确、更具体地查看我的预测时,我发现 20% 的违约率没有得到很好的预测。 您是否有一种方法可以很好地评估我的预测质量(对我来说,质量意味着可以很好地预测默认值的预测)。我认为 AUC 是一个很好的标准...... 到目前为止,您还有改善我的回归的方法吗? 谢谢
对于每个分类问题,您都可以构建一个 confusion matrix.
这是一个双向输入矩阵,让您不仅可以看到 正确的 positives/true 负数 (TP/TN),这是你的正确预测,但 也 误报 (FP)/漏报 (FN), 大多数时候这是你真正感兴趣的。
FP 和 FN 是您的模型所犯的错误,您可以使用 [=31= 跟踪模型在检测 TP (1-FP) 或 TN (1-FN) 方面的表现]灵敏度或特异性 (link).
请注意,您不能在不降低另一个的情况下改进一个。所以有时你需要选择一个。
一个好的折衷方案是 F1-score,它试图对两者进行平均。
因此,如果您对 默认值 更感兴趣(假设 defaults=Positive Class
),您会更喜欢具有更高 灵敏度的模型。但切记也不要完全忽视特异性。
这里是 R 中的示例代码:
# to get the confusion matrix and some metrics
caret::confusionMatrix(iris$Species, sample(iris$Species))