python - 如何在特征值约束的情况下最大化 ML 模型输出预测?
问题描述
我们的团队开发了一个细粒度的个人客户级别 ML 模型,该模型可以预测给定数量的促销活动(电话、电子邮件、会议、印象等)产生的收入(因变量)和客户的少数分类细节(地址、指定、细分等)。 )。
一旦模型到位,我们应该给出“最佳”促销活动,在这些促销活动中,收入在个人层面最大化,并有一定的限制(比如整体促销支出低于一定金额等。我们对每个促销都有成本,所以基本上约束是像独立特征值的界限)。
目前,我们模拟了电话、电子邮件、会议、印象等所有可能的促销价值(类别变量不会因个人客户而改变),并通过模型预测为每个人获得最佳收入案例。
目前这种方法的问题是它是一种蛮力方法。我们有大约 100 万客户,模拟不同数量的促销条目(很多组合)最终会得到大量数据,并且预测本身需要大量时间。
鉴于这是一个简单的最大化问题,但具有 ML 模型预测输出(在我们的例子中为神经网络)作为给定输入特征的函数,我们正在寻找任何无需数据模拟即可解决此问题的优化器。它就像 excel 中的求解器函数,其中目标函数是 ML 模型预测。
一个简单的类比——加州房价是一个众所周知的 ML 回归问题。假设我们有一个完善的模型(非参数模型,比如神经网络),我们如何估计每个县的房价最高的最佳特征值(有一些约束)(想象数据具有县信息为好)没有明确模拟数据。
解决方案
我鼓励您研究像 LIME 或 SHAP 这样的解决方案:
- https://github.com/slundberg/shap - 通过博弈论进行模型解释。
- https://github.com/marcotcr/lime - 通过本地可解释拟合进行模型解释。
推荐阅读
- vue.js - vuex 未知本地变异类型:updateValue,全局类型:app/updateValue。突变不起作用
- assembly - '@R0',...,'@R15',而不是'@0',...,'@15'有什么意义?
- azure-devops - Nuget 还原任务如何工作?解决方案中的 nuget.config 是否必须与构建服务器中的匹配?
- javascript - 使用云 Firestore 和 Javascript 按时间戳排序和获取元素
- php - 使用 Guzzle 将数据和文件一起发布到 Laravel API
- javascript - Discord 命令滞后
- php - PHP Urlrewriting 多个查询参数
- javascript - 模拟单选按钮的引导下拉复选框?
- r - 在 R(未来)中进行多处理时如何避免填充 RAM?
- javascript - 在使用 Ajax 和 Laravel 时需要帮助循环出从数据库中获取的 Json 数据响应的内容