如何为逻辑回归提供适当的初始猜测和界限?

时间:2019-11-09 01:25:08

标签: python scipy logistic-regression scipy-optimize

我正在尝试在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)。请指教

1 个答案:

答案 0 :(得分:0)

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