在使用SciPy库的minimize_scalar函数进行优化时,可能会遇到ValueError: Found array with dim 7. Estimator expected <= 2. 错误。这个错误通常发生在将一个多维数组作为输入参数传递给PolynomialFeaturestransform方法时。

错误信息显示在objective_function函数中,使用了一个7维的数组x_matrix作为输入参数,但是在使用PolynomialFeaturestransform方法时,发现输入的数组维度超过了2维的限制。

要解决这个问题,可以将x_matrix的维度调整为2维,可以使用reshape方法将其转换为一个形状为(1, 7)的二维数组。

修改后的代码如下:

def objective_function(x):
    # 构建X矩阵
    x_matrix = np.array([x]).reshape(1, 7)
    x_poly_matrix = po.transform(x_matrix)
    # 预测y值
    y_pred = reg2.predict(x_poly_matrix)
    return -y_pred[0]  # 最大化y值,因此返回-y_pred

# 最大化目标函数
result = minimize_scalar(objective_function, bounds=(0, 100), method='bounded')

# 输出最大化y值和对应的X矩阵内容
max_y = -result.fun
max_x = result.x

print('最大化y值:', max_y)
print('对应的X矩阵内容:', max_x)

请注意,这只是解决了报错的问题,是否得到了正确的结果还需要根据具体情况进行验证。

解决ValueError: Found array with dim 7. Estimator expected <= 2. 错误

原文地址: https://www.cveoy.top/t/topic/fOjB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录