【问题标题】:Can I use a machine learning model as the objective function in an optimization problem?我可以使用机器学习模型作为优化问题的目标函数吗?
【发布时间】:2019-07-16 22:34:37
【问题描述】:

我有一个数据集,我使用 Sklearn 决策树回归机器学习包来构建用于预测目的的模型。随后,我试图利用 scipy.optimize 包来解决基于给定约束的最小化解决方案。 但是,我不确定是否可以将决策树模型作为优化问题的目标函数。在这种情况下应该采取什么方法?我过去曾尝试过诸如 LarsCV 之类的线性回归模型,它们工作得很好。但是在线性回归模型中,您基本上可以从模型中提取系数和截取点。

【问题讨论】:

  • 您找到解决方案了吗?介意分享你的经验吗?
  • 这个问题没有直接的编码问题,属于这里:stats.stackexchange.com
  • @Neel 我发现我可以使用 ML 模型作为目标函数,但唯一适用于该策略的优化方法是 scipy.optimize.minimize 中的“COBYLA”。至少我的具体问题是这样的。

标签: python machine-learning optimization scikit-learn scipy


【解决方案1】:

是的;线性回归模型是系数的直接线性函数(其中之一是“截距”或“偏差”)。

您现在遇到的问题是,更复杂的模型并不是那么简单。您需要将模型加载到适当的引擎中。要“调用”模型,您需要为引擎提供输入向量(参数列表的同源),然后等待模型返回预测。

您需要将此过程包装在一个函数调用中,也许是一个将模型加载和处理作为外部系统/shell 命令发出的函数调用,并将结果返回到您的主程序。一些应用程序足够大,因此使用侦听器和报告器来实现全口径数据流来处理吞吐量是有意义的。

这会让你感动吗?

【讨论】:

  • 哦,我明白了,例如,模型被称为“模型”,然后我会这样:def objective(x): return Model.predict(x)
  • @Prune 你能详细说明一下吗?关于“您需要将模型加载到适当的引擎中”的一个小示例。要“调用”模型,您向该引擎提供输入向量(参数列表的同源),然后等待模型返回预测。 "肯定有帮助吗?
  • 您选择的模型和系统的相应教程中提供了示例。 Stack Overflow 并不打算取代这些教程。如果您的代码有特定问题,请发布一个新问题。
  • @Prune 感谢您的回复。我确实了解 SO 条款 n 条件。在对该主题进行广泛搜索后,我刚刚登陆white paper,它具有实现的理论方面。如果您可以分享一个具有实际实现的示例链接/教程链接,那就足够了。另外,我将发布具有特定问题的问题。
  • 您选择了什么型号和系统?这些将推动寻找合适的例子。要求链接到场外资源是特别离题的。不过,我会留意您的重点问题。
猜你喜欢
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
  • 2020-03-01
相关资源
最近更新 更多