我在 x_data 中有一个 3x2000 numpy 数组,在 y_data 中有一个 1x2000 numpy 数组,我将其传递给这个函数 regress 给我一条回归线。它工作正常。问题是我正在尝试进行一些回溯测试并测试 1000 种情况,我必须回归 1000 次,运行它大约需要 5 分钟。
我尝试标准化变量,但它似乎并没有让它更快。
我还简单地尝试了 fmin_powell 和 fmin_bfgs,这似乎打破了它。
有任何想法吗?谢谢!
def regress(x_data, y_data, fg_spread, fg_line):
theta = np.matrix(np.ones((1,x_data.shape[0]))*.11)
hyp = lambda theta, x: 1 / (1 + np.exp(-(theta*x)))
cost_hyp = lambda theta, x, y: ((np.multiply(-y,np.log10(hyp(theta,x)))) - \
(np.multiply((1-y),(np.log10(1-hyp(theta, x)))))).sum()
theta = scipy.optimize.fmin(cost_hyp, theta, args=(x_data,y_data), xtol=.00001, disp=0)
return hyp(np.matrix(theta),np.matrix([1,fg_spread, fg_line]).reshape(3,1))