我正在尝试使用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)。敬请指教
发布于 2019-11-09 12:20:33
我刚刚添加了x= np.hstack((np.ones((x.shape,1)),x)),这就解决了问题。
https://stackoverflow.com/questions/58775581
复制相似问题