【问题标题】:Find minimum return value of function with two parameters查找具有两个参数的函数的最小返回值
【发布时间】:2020-09-07 10:48:21
【问题描述】:

我有一个错误函数,以及 self.array 上所有错误的总和:

#'array' looks something like this [[x1,y1],[x2,y2],[x3,y3],...,[xn,yn]]
#'distances' is an array with same length as array with different int values in it
def calcError(self,n,X,Y): #calculate distance of nth member of array from given point
        X,Y = float(X),float(Y)
        arrX = float(self.array[n][0])
        arrY = float(self.array[n][1])
        e = 2.71828
        eToThePower = e**(-1*self.distances[n])
        distanceFromPoint=math.sqrt((arrX-X)**2+(arrY-Y)**2)
        return float(eToThePower*(distanceFromPoint-self.distances[n])**2)

def sumFunction(self,X,Y):
        res = 0.0
        for i in range(len(self.array)):
            res += self.calcError(i,X,Y)
        return res

我一直在寻找一种方法来查找 sumFunction 返回值最小的坐标。我听说过 scipy,但我正在寻找一种手动构建的方法。梯度下降似乎也不起作用,因为很难推导出这个求和函数。 谢谢!

【问题讨论】:

    标签: python python-3.x gradient-descent


    【解决方案1】:

    您是否尝试过将变量创建为字典,然后像 {self.calcError(i,X,Y)}:{i,X,Y} 一样附加所有迭代。如果你返回最小的 variable.keys 那么你可以到达从最小键到值的坐标。

    【讨论】:

    • 我认为他正在寻找一种好的算法来找到最小值,而不是技术帮助。
    • 确实是 Nimrod,我想找到 X,Y,它将返回可能的错误值的最小总和
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 2022-01-13
    • 2021-12-09
    • 2020-05-12
    相关资源
    最近更新 更多