【问题标题】:sklearn Logistic Regression probabilitysklearn 逻辑回归概率
【发布时间】:2015-05-04 20:47:39
【问题描述】:

我有一个数据集,它可以根据两个分数确定学生是否会被录取。我使用这些数据训练我的模型,并且可以使用以下代码确定学生是否会被录取:

model.predict([score1, score2])

这就是答案:

[1]

我怎样才能得到这个概率?如果我尝试 predict_proba,我会得到:

model.predict_proba([score1, score2])
>>[[ 0.38537034  0.61462966]]

我真的很想看到类似的东西:

>> [0.75]

表示 P(admittance | score1, score2) = 0.75

【问题讨论】:

    标签: machine-learning scikit-learn logistic-regression


    【解决方案1】:

    您可能会注意到 0.38537034+ 0.61462966 = 1。这是因为您从 predict_proba 的输出中获得了两个类别(录取和未录取)的概率。如果你有 7 个类,你会得到类似 [[p1, p2, p3, p4, p5, p6, p7]] 其中 p1+p2+p3+p4+p5+p6+p7 = 1 和 pi >= 0 . 所以如果你想要输出 i 的概率,你可以索引你的结果并查看 pi 是什么。这就是它的工作原理。

    因此,如果您有不被录取的概率为 0.75,您将得到类似于 [[0.25, 0.75]] 的结果。

    (我可能已经颠倒了您在代码中用于承认/不承认的顺序,但这没关系 - 只是改变了您查看的索引)。

    【讨论】:

    • 不同之处在于,0.75 是两种分数都被录取的概率,而 0.38537034 和 0.61462966 是被录取的概率。
    • @ukejoe 您从 model.predict_proba([score1, score2]) 获得的值确实是在给定 2 个分数的情况下被录取或不被录取的概率(或相反)。
    【解决方案2】:

    如果你想sklearn的Lr模型并且你想得到2个类的预测概率,你应该使用这个:

    model.predict_proba(xtest)
    

    你会得到两个类的数组prob(shape N*2)

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 2023-04-04
      • 2019-04-04
      • 2013-06-05
      • 2018-03-05
      • 2017-11-20
      • 2019-04-06
      • 2016-03-06
      相关资源
      最近更新 更多