解决ValueError: Found array with dim 7. Estimator expected <= 2. 错误
在使用SciPy库的minimize_scalar函数进行优化时,可能会遇到ValueError: Found array with dim 7. Estimator expected <= 2. 错误。这个错误通常发生在将一个多维数组作为输入参数传递给PolynomialFeatures的transform方法时。
错误信息显示在objective_function函数中,使用了一个7维的数组x_matrix作为输入参数,但是在使用PolynomialFeatures的transform方法时,发现输入的数组维度超过了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)
请注意,这只是解决了报错的问题,是否得到了正确的结果还需要根据具体情况进行验证。
原文地址: https://www.cveoy.top/t/topic/fOjB 著作权归作者所有。请勿转载和采集!