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