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