Python 训练机器学习模型预测的最优参数搜索

Python 训练机器学习模型预测的最优参数搜索,python,machine-learning,optimization,Python,Machine Learning,Optimization,我已经从以下电路创建了一个ML模型 作为输入,我只使用R3和R5的值,我正在改变范围: R3:1至5 R5:10到150,以10步为单位 我的目标值是电路的效率,测量为R5消耗的功率与V1提供的功率之比 一旦我训练了模型,我就对更大范围的值进行了预测,得到了在Z轴上具有效率的曲面: 我的问题是,给定一组,例如: X1=1 X2=3 这导致输出预测效率为50% 我如何自动化推荐更好价值的过程,例如: X1=1 X2=1 这样可以产生57%的效率 我想根据一些限制条件来做这件事,比如:在X1上只

我已经从以下电路创建了一个ML模型

作为输入,我只使用R3和R5的值,我正在改变范围:

R3:1至5 R5:10到150,以10步为单位

我的目标值是电路的效率,测量为R5消耗的功率与V1提供的功率之比

一旦我训练了模型,我就对更大范围的值进行了预测,得到了在Z轴上具有效率的曲面:

我的问题是,给定一组,例如:

X1=1 X2=3

这导致输出预测效率为50%

我如何自动化推荐更好价值的过程,例如:

X1=1 X2=1

这样可以产生57%的效率


我想根据一些限制条件来做这件事,比如:在X1上只移动2个步骤,在X2上只移动3个步骤这听起来像是梯度下降之类的优化器的工作(如果您可以在PyTorch或TensorFlow等具有自动微分功能的框架中实现您的ML模型,建议您这样做)

如果基于梯度的优化器不适合您的特定功能,我建议。根据您问题中的描述,我建议以下选项:

  • 遗传算法,如Python实现:
  • Python实现:
  • Python实现:
所有这些算法都适用于离散搜索空间,如果它们不提供用于约束搜索空间的方便API,您可以通过包装模型来解决该问题:

让您的ML模型成为一个函数:

f(x1:float,x2:float)->float
您可以编写包装函数
f_constrated
,如下所示:

def_约束(x1:float,x1:float,
x1_最小值:浮动,x1_最大值:浮动,
x2_最小值:浮动,x2_最大值:浮动)->浮动:

如果这个问题缺少很多相关信息。您使用的是哪种ML型号?哪个目标函数?您描述的过程是否仅用于生成培训集?如果有帮助的话,在我看来,这就像一个场景,一个分析解决方案可能比一个ML模型更简单,更容易实现。@torresmateo特别是ML模型是不相关的,这个解决方案应该与任何其他算法一起工作。是的,我描述的过程只是生成训练集。ML模型是否最适合解决这个问题也不是问题,我理解。关于搜索空间的限制,“步骤”是否意味着搜索空间是离散的?任何任意对(x1,x2)的函数是否可用于搜索算法?@torresmateo对,函数是连续的,但变量有物理限制,例如,因此它是离散的搜索空间,我会对其进行模拟退火(如果函数可以相当快地计算),让我知道,如果你需要一个工作的最低限度的例子