Python:返回条件的函数参数

Python:返回条件的函数参数,python,function,for-loop,return,Python,Function,For Loop,Return,我是Python新手,尝试自动寻找savgol过滤器的最佳操作参数,该过滤器用于PLS分析。首先,我有一个预测函数,计算结果并绘制它们 为了尝试和自动化优化,我有一个for循环,它遍历一系列数字,然后将这个数字输入到t。我想要一个过滤器,然后进入函数。其目的是在应用函数后找到可能的最小结果,并返回产生该函数的参数 我不知道该怎么做。另外,我不希望for循环每次都生成绘图。我是否只是将执行此操作的代码部分剪切并粘贴到循环函数中 def loopit(): 对于范围(1,3)内的导数: 对于范围(5

我是Python新手,尝试自动寻找savgol过滤器的最佳操作参数,该过滤器用于PLS分析。首先,我有一个预测函数,计算结果并绘制它们

为了尝试和自动化优化,我有一个for循环,它遍历一系列数字,然后将这个数字输入到t。我想要一个过滤器,然后进入函数。其目的是在应用函数后找到可能的最小结果,并返回产生该函数的参数

我不知道该怎么做。另外,我不希望for循环每次都生成绘图。我是否只是将执行此操作的代码部分剪切并粘贴到循环函数中

def loopit():
对于范围(1,3)内的导数:
对于范围(5、50、2)内的窗口长度:
X2_校准=savgol_过滤器(X_校准,窗长,多阶=4,导数)
X2_valid=savgol_过滤器(X_valid,窗长,多序=4,导数)
#调用预测函数
预测(X2_校准,Y_校准,X2_有效,Y_有效,绘图组件=假)
差异=(abs((pd.DataFrame(Y_有效))-(pd.DataFrame(Y_pred)))/abs(pd.DataFrame(Y_有效))
差异之和=差异之和()
#所有预测和的最小值
最小值=最小值(差值总和)
退货(最低)

如果我没搞错你的问题,你会想循环一系列超参数,不仅返回它们的迭代产生的最小值,还返回产生它的参数

如果希望返回参数,即
导数
&
窗口长度
,请尝试

def loopit():
    results = {} 
    _min = 100.0 # Or any other value which you think will be higher than all of the minimums
    for derivative in range(1,3):
        for windowlength in range(5, 50, 2):
            .
            .
            .### Do Something
            .
            .
            .
            sumOfDifference = difference.sum()
            if min(sumOfDifference) < _min:
                results['minimum'] = min
                results['derivative_val'] = derivative
                results['windowlenghts_val'] = windowlength
                _min = min(sumOfDifference)

    return results

首先尝试,然后回来,如果你不工作。谢谢你的回答。min前面的下划线“ux”是什么意思?为什么要在初始化后定义它呢?下划线“u”是为了区分python的“min”函数和您创建的变量,您可以将其重命名为
min\u sod
或任何东西,它只是一个变量。Python中不需要声明变量,因此只要初始化它就可以告诉变量_min它属于“float”类别
\u min=min(sumOfDifference)
只是找到
sumOfDifference
的最小值并将其分配给
\u min
变量。希望有帮助,如果这个答案解决了你的问题,请接受。
res = loopit()
print(res['minimum'])
print(res['derivative_val'])
print(res['windowlenghts_val'])