mathematical-optimization
全部标签 我正在使用optimize.leastsq来拟合数据。我想将拟合参数限制在一定范围内。使用optimize.leastsq时是否可以定义边界?边界在optimize.fmin_slsqp中实现,但我更愿意使用optimize.leastsq。 最佳答案 我认为处理边界的标准方法是在参数超过边界时使要最小化的函数(残差)非常大。importscipy.optimizeasoptimizedefresiduals(p,x,y):ifwithin_bounds(p):returny-model(p,x)else:return1e6p,co
给定一组3D点,一般问题是找到以下形式的平面方程的a,b,c系数:z=a*x+b*y+c使得生成的平面是该组点的最佳拟合。在thisSOanswer,函数scipy.optimize.minimize用于解决这个问题。它依赖于对系数的初始猜测,并最小化对每个点到平面表面的距离求和的误差函数。在thiscode(基于thisotherSOanswer)scipy.linalg.lstsq函数用于解决相同的问题(当限制为一阶多项式时)。它求解方程z=A*C中的C,其中A是x,y的串联点集合的坐标,z是集合的z坐标,C是a,b,c系数。与上面方法中的代码不同,这个方法似乎不需要对平面系数进行
我的wxpython应用程序使用pyinstaller编译得很好,直到添加了一些基于fromscipy.optimizeimportleastsq语句的功能。我该如何解决这个问题? 最佳答案 第一次在cmd中运行命令pyinstallermyscript.py时,将创建一个myscript.spec文件(或者您可以手动创建)。该文件允许您指定隐藏的导入,我发现(通过漫长而乏味的试错过程)以下隐藏的导入可以解决问题:'scipy.special._ufuncs_cxx''scipy.linalg.cython_blas''scipy.
scipy.optimize.minimze将obj和jac函数作为输入。我相信它会在需要时分别调用它们。但我们经常会遇到目标函数,其梯度计算与目标函数共享大量计算。所以理想情况下,我想同时计算obj和grad。但是这个库好像不是这样的?如果有scipy.optimize.minimze如果有的话,有什么办法处理? 最佳答案 你完全可以。只需使用jac=True:In[1]:importnumpyasnpIn[2]:fromscipy.optimizeimportminimizeIn[3]:deff_and_grad(x):...:
我正在尝试在Tensorflow中实现神经网络。我正在使用tf.train.GradientDescentOptimizer来最小化熵。但是它向我显示错误ValueError:Novariablestooptimize下面是代码importtensorflowastffromtensorflow.examples.tutorials.mnistimportinput_datamnist=input_data.read_data_sets("MNIST_data/",one_hot=True)x=tf.placeholder(tf.float32,[None,748])w=tf.zero
我有一个多参数函数。我想针对单个变量优化它,同时保持其他变量不变。为此,我想使用spicy.optimize中的minimize_scalar。我阅读了文档,但我仍然对如何告诉minimize_scalar我想最小化variable:w1感到困惑。下面是一个最小的工作代码。importnumpyasnpfromscipy.optimizeimportminimize_scalardeferror(w0,w1,x,y_actual):y_pred=w0+w1*xmse=((y_actual-y_pred)**2).mean()returnmsew0=50x=np.array([1,2,3
我一直在使用scipy.optimize.minimize(docs)当我定义一个不可能满足约束的问题时,我注意到了一些奇怪的行为。这是一个例子:fromscipyimportoptimize#minimizef(x)=x^2-4xdeff(x):returnx**2-4*xdefx_constraint(x,sign,value):returnsign*(x-value)#subjecttox>=5andx结果输出:fun:-3.0jac:array([2.])message:'Optimizationterminatedsuccessfully.'nfev:3nit:5njev:1
我正在尝试使用scipy.optimize最小化以下函数:这是它的梯度:(对于那些感兴趣的人,这是用于成对比较的Bradley-Terry-Luce模型的似然函数。与逻辑回归密切相关。)很明显,向所有参数添加常量不会改变函数的值。因此,我让\theta_1=0。以下是目标函数和梯度在python中的实现(theta在这里变为x):defobjective(x):x=np.insert(x,0,0.0)tiles=np.tile(x,(len(x),1))combs=tiles.T-tilesexps=np.dstack((zeros,combs))returnnp.sum(cijs*s
我在R中使用h2o包(v3.6.0),并且构建了一个网格搜索模型。现在,我正在尝试访问在验证集上最小化MSE的模型。在python的sklearn中,使用RandomizedSearchCV很容易实现:##Pseudocode:grid=RandomizedSearchCV(model,params,n_iter=5)grid.fit(X)best=grid.best_estimator_不幸的是,这在h2o中并不那么简单。这是您可以重新创建的示例:library(h2o)##assumeyougoth2oinitialized...X查看grid会打印出大量信息,包括这一部分:>gr
我正在尝试使用scipy.optimize包来查找成本函数的最大值。在这种特殊情况下:我有一张价格表,每天都在变化。为了方便起见,假设一天有8个小时,每小时的价格如下:price_list=np.array([1,2,6,8,8,5,2,1])在这个简化的例子中,我想从price_list中选择4个最高的价格。由于各种原因,我不想简单地排序和选择最好的四个价格,而是使用一些优化算法。我有几个限制条件,因此我决定使用scipy中的最小二乘算法,scipy.optimize.fmin_slsqp。我首先为我选择的时间创建一个时间表:schedule_list=np.zeros(len(pr