通过功能优化最小化从XGBoost模型预测的值

时间:2019-05-21 11:19:44

标签: mathematical-optimization xgboost

我已经在python中创建了一个XGBoost模型,该模型可以预测给定过程基础密钥驱动程序所花费的时间。现在的目的是找到合适的驱动程序组合,以最大程度地减少处理时间。当前有30个驱动程序可帮助预测处理时间。但是,在这30个驱动程序中,我只想优化3个。

这个问题听起来像是一个受约束的非线性优化问题(如果我错了,请纠正我),因为3个驱动程序只能取一堆值。

当前,我创建了一个简单的for循环(基于约束),以创建3个驱动程序的组合。

for x in range(70,130):
    for i in range(0, 15):
        for j in range(34, 80):
            for k in range(25,40):
                if i+j+k==x:
                    val_rng_w_scrap.append({'PROCESS_TYPE':'Process1', 'Driver1': i, 'Driver2': j, 'Driver3':k})

sim_at_pred = model_at.predict(master_sim_14_all_iter_at)

其中master_sim_14_all_iter_at包含Driver1,Driver2和Driver3的不同组合,以及固定的静态27个其他驱动程序集,这对于过程时间预测很重要。在通过XGBoost模型评分之后,我选择了Driver1,Driver2和Driver3的组合,这是处理时间最少的最佳解决方案。

是否有一种使用遗传算法或scipy的方法。优化以获得Driver1,Driver2和Driver3的优化组合(而不是使用上述蛮力技术)?还是有另一种可能的方式来获得最佳解决方案?

0 个答案:

没有答案