【问题标题】:Convex Log Optimization with Scipy使用 Scipy 进行凸对数优化
【发布时间】:2015-11-22 04:48:34
【问题描述】:

我需要用随机初始化的猜测数据“x”最小化函数func(x)

np.random.seed(1234)
m = 500    #500
n = 100    #100
x = np.asmatrix(np.random.randint(500,1000,size=(n,1)))

def func(x):
    A = np.asmatrix(np.random.randint(-10,-1, size=(n, m)))
    b = np.asmatrix(np.random.randint(500,10000,size=(m,1)))
    c = np.asmatrix(np.random.randint(1,10,size=(n,1)))
    fx = c.transpose()*x - sum(np.log10((b - A.transpose()* x)))
    return fx
sc.optimize.fmin_cg(func,y)

我遇到了这个错误 “ValueError:形状(1,100)和(1,100)未对齐:100(dim 1)!= 1(dim 0)” 不确定 scipy 如何期望数据。我是 scipy 的新手。如果有人能指出正确的方向,那就太好了。

【问题讨论】:

    标签: python optimization scikit-learn


    【解决方案1】:

    应该这样做:

    import scipy.optimize
    import numpy as np
    
    np.random.seed(1234)
    m = 500    #500
    n = 100    #100
    x0 = np.random.rand(n)
    
    A = np.asmatrix(np.random.randint(1,10, size=(n, m)))
    b = np.asmatrix(np.random.randint(500,10000,size=(m,1)))
    c = np.asmatrix(np.random.randint(1,10,size=(n,1)))
    
    def func(x, A, b, c):
        fx = np.dot(c.T, x) - np.sum(np.log10((b - np.dot(A.T, x))))
        return fx
    
    
    res = scipy.optimize.fmin_cg(func, x0, args=(A,b,c), maxiter=5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 2018-04-16
      • 2016-03-10
      • 1970-01-01
      • 2018-11-04
      • 2022-01-22
      • 2015-06-09
      • 1970-01-01
      相关资源
      最近更新 更多