我正在尝试使用sklearn的优化函数编写将优化多变量函数的代码,但它会一直返回一个IndexError,我不知道从哪里开始。
代码是这样的:
revcoeff = coefficients[::-1]
xdot = np.zeros(0)
normfeat1 = normfeat1.reshape(-1,1)
xdot = np.append(normfeat1, normfeat2.reshape(-1,1), axis=1)
a = revcoeff[1:3]
b = xdot[0, :]
seed = np.zeros(5) #does seed need to be the coefficients? not sure
fun = lambda x: np.multiply((1/666), np.power(np.sum(np.dot(a, xdot[x, :])-medianv[x]),2)) #costfunction
optsol = optimize.minimize(fun, seed)
我在最近邻算法中使用了两个功能。拟合回归模型的系数被给予数组“系数”。
我无法理解的是1)为什么我的代码抛出“IndexError:用作指标的数组必须是整数或布尔类型”....而且部分我对optimize.minimize感到困惑功能本身。它接受两个输入值,即函数和x0(带有初始猜测的ndarray)。 x0应该是什么,系数值?或者我选择随机值,有多少是必要的?
答案 0 :(得分:0)
np.zeros()
默认情况下不返回整数。例如,请尝试使用np.zeros(5, dtype=int)
。但是,它无法解决代码的所有问题。您会看到其他一些错误消息。
另外,请注意,1/666
返回0而不是0.00150150。你可能想要1 / 666.0。
如果您可以清理代码将会有所帮助,因为它的一半是没用的。