草庐IT

optimism

全部标签

python - 使用 scipy.optimize 最小化多元可微函数

我正在尝试使用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

python - H2O R API : retrieving optimal model from grid search

我在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

python - scipy.optimize.fmin_slsqp 的使用

我正在尝试使用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

python - `scipy.optimize.minimize` 中的 Jacobian 和 Hessian 输入

我试图了解“dogleg”方法在Python的scipy.optimize.minimize中是如何工作的功能。我正在调整帮助页面底部的示例。根据注释,dogleg方法需要Jacobian和Hessian参数。为此,我使用numdifftools包裹:importnumpyasnpfromscipy.optimizeimportminimizefromnumdifftoolsimportJacobian,Hessiandeffun(x,a):return(x[0]-1)**2+(x[1]-a)**2x0=np.array([2,0])#initialguessa=2.5res=mini

python - 将 scipy.optimize.minimize 限制为整数值

我正在使用scipy.optimize.minimize来优化一个答案只能是整数的现实问题。我当前的代码如下所示:fromscipy.optimizeimportminimizedeff(x):return(481.79/(5+x[0]))+(412.04/(4+x[1]))+(365.54/(3+x[2]))+(375.88/(3+x[3]))+(379.75/(3+x[4]))+(632.92/(5+x[5]))+(127.89/(1+x[6]))+(835.71/(6+x[7]))+(200.21/(1+x[8]))defcon(x):returnsum(x)-7cons={'t

python - Lorentzian scipy.optimize.leastsq 适合数据失败

自从我参加了Python讲座后,我想用它来拟合我的数据。虽然我现在已经尝试了一段时间,但我仍然不知道为什么这不起作用。我想做什么从子文件夹(此处称为“测试”)中取出一个又一个数据文件,稍微转换数据并用洛伦兹函数对其进行拟合。问题描述当我运行下面发布的代码时,它不适合任何东西,在4次函数调用后只返回我的初始参数。在一遍又一遍地检查python文档后,我尝试缩放数据,尝试使用ftol和maxfev,但没有任何改进。我还尝试将列表显式更改为numpy.arrays,以及对问题scipy.optimize.leastsqreturnsbestguessparametersnotnewbestf

python - scipy.optimize.minimize 方法 ='SLSQP' 忽略约束

我正在使用SciPy进行优化,而SLSQP方法似乎忽略了我的约束。具体来说,我希望x[3]和x[4]在[0-1]范围内我收到消息:“不等式约束不兼容”这是执行的结果,后面是示例代码(使用虚拟函数):status:4success:Falsenjev:2nfev:24fun:0.11923608071680103x:array([-10993.4278558,-19570.77080806,-23495.15914299,-26531.4862831,4679.97660534])message:'Inequalityconstraintsincompatible'jac:array([

python - 将元组作为 scipy.optimize.curve_fit 的输入参数传递

我有以下代码:importnumpyasnpfromscipy.optimizeimportcurve_fitdeffunc(x,p):returnp[0]+p[1]+xpopt,pcov=curve_fit(func,np.arange(10),np.arange(10),p0=(0,0))它会引发TypeError:func()takesexactly2arguments(3given)。嗯,这听起来很公平-curve_fit将(0,0)分解为两个标量输入。所以我尝试了这个:popt,pcov=curve_fit(func,np.arange(10),np.arange(10),p

python - Windows 8 上的 scipy.optimize dll 加载失败

我正在尝试在Windows8上使用Python3.3.1导入scipy.optimize。我正在使用scipy-0.12.0。当我尝试导入时,Python返回以下错误:>>>importscipy.optimizeTraceback(mostrecentcalllast):File"",line1,inFile"C:\Python33\lib\site-packages\scipy\optimize\__init__.py",line146,infrom.optimizeimport*File"C:\Python33\lib\site-packages\scipy\optimize\o

python - `Optimal` Tensorflow中用于矩阵分解的变量初始化和学习率

我正在Tensorflow中尝试一个非常简单的优化——矩阵分解问题。给定一个矩阵V(mXn),将其分解为W(mXr)和H(rXn)。我从here借用了基于梯度下降的基于tensorflow的矩阵分解实现.有关矩阵V的详细信息。在其原始形式中,条目的直方图如下所示:为了将条目置于[0,1]范围内,我执行了以下预处理。f(x)=f(x)-min(V)/(max(V)-min(V))归一化后,数据的直方图如下所示:我的问题是:鉴于数据的性质:介于0和1之间且大多数条目更接近0而不是1,W和H的最佳初始化是什么?如何根据不同的成本函数定义学习率:|A-WH|_F和|(A-WH)/A|?最小的工