【问题标题】:Python statsmodel.api logistic regression (Logit)Python statsmodel.api 逻辑回归(Logit)
【发布时间】:2014-12-19 02:48:25
【问题描述】:

所以我正在尝试使用 python 的 statsmodels.api 进行预测,以对二元结果进行逻辑回归。我按照教程使用Logit。 当我尝试对测试数据集进行预测时,每条记录的输出都是 0 到 1 之间的小数。 它不应该给我零和一吗?还是我必须使用圆形函数或其他东西来转换这些。

请原谅这个问题的愚蠢。我盯着我的旅程。

【问题讨论】:

    标签: python statistics statsmodels logistic-regression


    【解决方案1】:

    预测值是给定解释变量的概率,更准确地说是观察到 1 的概率。

    要获得 0、1 的预测,您需要选择一个阈值,例如 0.5 表示相等的阈值,并将 1 分配给高于阈值的概率。

    例如使用 numpy

    predicted = results.predict(x_for_prediction)
    predicted_choice = (predicted > threshold).astype(int)
    

    【讨论】:

    • 您好,感谢您对此的回复。 0.5 是最佳阈值还是有办法解决这个问题。
    • 如果您需要一个 0 1 点的决策或分类,那么阈值将取决于您的损失函数。当我们选择 0 或 1 预测时,我们会以一定的概率犯错误。如果你的错误损失是对称的,当真值为 0 时选择 1,当真值为 1 时选择 0 具有相同的“成本”,那么选择 0.5 是最佳阈值。如果损失是不对称的,那么我们应该移动阈值以最小化预测损失。
    • 您好,再次感谢您的回复。如何计算损失函数? Logit 会为我做这件事,还是我必须自己写。我这与调用 fit() 方法时生成的报告有关。如果您能指导我访问任何在线资源,我将不胜感激。卡里姆
    • 我的谈话迟到了,但我只想说,正确的方法似乎是从二项式(预测)分布中抽取样本,如下所述:stats.stackexchange.com/questions/46523/…
    【解决方案2】:

    如果响应是在解释为概率的单位区间上,除了考虑损失之外,另一个可能有帮助的观点是将其视为二项式结果,将其视为计数而不是伯努利。特别是,除了您的问题中的概率响应之外,在每种情况下是否有任何对应的试验次数?如果有,那么逻辑回归可以重新表示为二项式(计数)响应,其中(整数)计数将是四舍五入的预期值,通过概率和试验次数的乘积获得。

    【讨论】:

      猜你喜欢
      • 2018-11-29
      • 2017-05-03
      • 2020-03-22
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2016-03-06
      相关资源
      最近更新 更多