Python statsmodel.api逻辑回归(Logit)

4

我正在使用Python的statsmodels.api进行二元结果的逻辑回归预测。根据教程,我使用Logit。但是,在测试数据集上进行预测时,每条记录的输出都是介于0和1之间的小数。

这不应该给我0和1吗?或者我需要使用round函数或其他方法进行转换吗?请注意,保留HTML标记,请勿解释。

请原谅这个问题的初学者之问。我正在踏上这段旅程。

2个回答

5
预测值是给定解释变量的概率,更准确地说是观察到1的概率。
要获得0和1的预测,您需要选择一个阈值,例如0.5用于等阈值,并将1分配给高于阈值的概率。
使用numpy,例如:
predicted = results.predict(x_for_prediction)
predicted_choice = (predicted > threshold).astype(int)

你好,感谢您对此的回复。0.5是否是最佳阈值,还是有一些方法可以解决这个问题。 - Karim Lameer
如果您需要进行0 1点决策或分类,则阈值取决于您的损失函数。当我们选择0或1预测时,会以一定的概率犯错。如果您从错误中获得的损失是对称的,即在真实值为0时选择1,在真实值为1时选择0具有相同的“代价”,那么选择0.5是最优阈值。如果损失不对称,则应调整阈值以最小化预测损失。 - Josef
你好,再次感谢您的回复。我该如何计算损失函数?Logit会为我完成这项工作吗,还是我需要自己编写代码?这是否与调用fit()方法时生成的报告有关?如果您能指导我任何在线资源,我将不胜感激。Karim - Karim Lameer
我来晚了,但我只想说正确的方法似乎是从二项(预测)分布中抽样,如此处所述:http://stats.stackexchange.com/questions/46523/how-to-simulate-artificial-data-for-logistic-regression - legaultmarc

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接