使用'OptimalCutpoints'包查找最佳切割点

时间:2018-01-29 16:33:47

标签: r machine-learning confusion-matrix

我使用OptimalCutpoints包来确定不平衡二进制分类问题中概率预测的最佳切点。我选择NO类作为健康类(大部分因变量是NO)。使用代码我尝试提取最佳切割点以平衡预测的敏感性和特异性。我的问题是,我应该假设模型预测的概率应该大于或小于最佳切割点,以将其归类为YES。这可能是一个简单的问题,但是,在我使用不同模型的数据集中,我观察到有时候通过取> =和其他时间< =来表示更好的结果。

optimal_cutpoint <- optimal.cutpoints(
        X = "score",
        status = "true",
        tag.healthy = 'NO',
        methods = "MaxSpSe",
        data = data.frame(score = predict(model, df_train, type="prob")$YES
                          , true = df_train$y),
        control = control.cutpoints()
    )
optimal_cutpoint <- optimal_cutpoint$MaxSpSe$Global$optimal.cutoff$cutoff[1]

2 个答案:

答案 0 :(得分:0)

从包装文档中获取:

“……测试值低于临界值的个人被归为健康(阴性测试),而测试值大于(或等于)临界值的患者被归类为患病(阳性测试)。”

因此,在您的示例中,低于临界点的概率应分类为否。

答案 1 :(得分:0)

说明:

在使用条件>=<=之间发现的差异只是逻辑上的差异。有条件的<=也等同于严格的>

示例:

If (a >= 2) then "non-healthy"
If (a <= 2) then "healthy",也等同于说if (a > 2) then "non-healhty" < / p>