我想使用scipy最小化函数来最小化阈值。这是一个约束最小化,其中我的约束是内核脊预测函数的输出。
更确切地说,我有一个数据集,我在scikit-learn中训练Kernel Ridge方法,对于给定的测试用例,我想在选择测试向量的一个值时最小化阈值,这将使得阈值可行。
这是代码
cons = ({'type': 'ineq',
'fun': lambda x: x[0]-Krr.predict(np.concatenate(([x[1]], [np.transpose(xTest[1:])]), axis=0))})
fun = lambda x: x[0]
res = minimize(fun,(0,0),constraints=cons)
在这段代码中,x [0]是一个阈值,x [1]是我想要找到的符合约束的值。这就是为什么目标不考虑x [1]。
当我运行此代码时,它告诉我np.concatenate的参数必须具有相同的维度:“ValueError:所有输入数组必须具有相同的维数”。
这里x [1]应该是一个浮点数,xTest [1:]应该是一个np数组,例如1xN。
由于在运行最小化时这是一个问题,我如何解决这个问题以对齐数组?
更好的是,有没有人进行过这样的最小化?