【问题标题】:How to provide the proper initial guess and bounds to logistic regression?如何为逻辑回归提供正确的初始猜测和界限?
【发布时间】:2019-11-13 03:28:49
【问题描述】:

我正在尝试在 python 中使用scipy.optimize 实现逻辑回归。当我尝试使用 sklearn 时,我开始了解可用于预测给定数据集的 beta 值。但是当我尝试在 scipy 优化函数中使用它时,成本值将变为无穷大,或者有时值很好但截距不存在。原因是,界限和最初的猜测似乎。如何制定?如果有其他方法,请告诉我。

import scipy 
import numpy as np 


def sigmoid(x,beta):
    return((np.exp(np.dot(x, beta))/(1.0 + np.exp(np.dot(x, beta)))))

def mle(beta, x, y):
    return(-(np.sum(y*np.log(sigmoid(x, beta)) + (1-y)*(np.log(1-sigmoid(x,beta))))))

# x0 value ? and bounds ? 
result = scipy.optimize.minimize(mle, x0 = np.array([-.1]), args = (x,y))

这里没有拦截。数据框的形状是(100,2)。请指教

【问题讨论】:

    标签: python scipy logistic-regression scipy-optimize


    【解决方案1】:

    我刚刚添加了 x = np.hstack((np.ones((x.shape[0], 1)), x)) ,这解决了问题。

    【讨论】:

    • 请提供更详细的答案以供将来参考。
    猜你喜欢
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多