pymoo 在没有数学函数的情况下借助机器学习预测进行优化?

时间:2021-03-30 16:06:51

标签: python machine-learning optimization genetic-algorithm

我正在尝试为我的多机器学习预测找到 NSGAII,对于线性回归它似乎与 pymoo 一起工作,因为线性回归可以在截距和系数的帮助下变成一个数学方程。所以这里我为线性回归所做的代码如下

import autograd.numpy as anp
from pymoo.model.problem import Problem
class MyProblem(Problem):
    def __init__(self):
        super().__init__(n_var=2,n_obj=2,xl=anp.array([-2,-2]),xu=anp.array([10,10]))
    def _evaluate(self, x, out, *args, **kwargs):
        
        f1  = x[:,0]*regressor.coef_[0] + x[:,1]*regressor.coef_[1] + regressor.intercept_
        f2 = x[:,0]**2 + x[:,1]**2
        #g1 = 0
        #g2 = 0
        out["F"] = anp.column_stack([f1, f2])
    

是的,所以当它是一个数学方程时优化是有效的......但是一旦我直接将它作为机器学习预测函数来使用

f1 = (regressor.predict([[x[:,0],x[:,1]]]))

错误是

ValueError: Found array with dim 3. Estimator expected <= 2

除了线性回归之外,我找不到任何可以优化机器学习预测的示例。顺便说一句,我想将这些方法扩展到随机森林回归和支持向量回归。

0 个答案:

没有答案