【发布时间】: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