Я хочу минимизировать предсказанный_Pel, полученный из нейронной сети, используя две переменные решения.Python

Программы на Python
Anonymous
Я хочу минимизировать предсказанный_Pel, полученный из нейронной сети, используя две переменные решения.

Сообщение Anonymous »

Я хочу минимизировать предсказанный_Pel, полученный из нейронной сети, используя две переменные решения. Следующий код работает с одной переменной решения, но не работает с двумя переменными и показывает ошибку,
  • Это мой набор данных, который я обучил в нейронной сети

Код: Выделить всё

import pandas as pd
import numpy as np
from gekko.ML import Gekko_NN_SKlearn, CustomMinMaxGekkoScaler
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPRegressor
from gekko import GEKKO
data = {
'Tco': [303.9599915, 303.6700134, 303.5799866, 303.7799988, 303.8200073, 304.1000061, 304.0400085, 304.0,
303.9500122, 304.25],
'Tei': [287.8900146, 287.8399963, 287.7799988, 287.8099976, 287.8299866, 287.8200073, 287.8399963, 287.8900146,
287.8399963, 287.8800049],
'm_cond': [0.000259306, 0.000266121, 0.000265435, 0.000266299, 0.000266172, 0.000266147, 0.000266071, 0.000266147,
0.000266757, 0.000267444],
'Pel': [874.0000129, 873.0000257, 871.999979, 875.9999871, 878.000021, 885.9999776, 884.9999905, 883.0000162,
882.0000291, 889.9999857]
}

df = pd.DataFrame(data)
# Define features and label
X = ['Tco','Tei', 'm_cond']
Y = ['Pel']
  • После обучения моей нейронной сети я минимизирую прогнозируемый Pel, он работает с одной переменной решения, то есть Tco, как показано ниже

Код: Выделить всё

# Create a Gekko model
m = GEKKO()

# Define Tco as a decision variable
Tco = m.Var(value=10, lb=303, ub=304)

# Predict Pel using the trained neural network
predicted_Pel = Gekko_NN_SKlearn(mlp, mma, m).predict([Tco])

# Set the predicted Pel value as the objective to minimize
m.Minimize(predicted_Pel)

# Solve the optimization problem
m.solve(disp=False)

# Print the optimized Tco and corresponding predicted Pel value
print('Optimized Tco:', Tco.value[0])
print('Optimized Predicted Pel:', predicted_Pel.value[0])
print('Gekko Solvetime:', m.options.SOLVETIME, 's')
Решение
Оптимизированное Tco: 303,5799866
Оптимизированное прогнозируемое Pel: 875,45941052
Время решения Gekko: 0,056699999986 с
  • Это не работает, когда я использую две переменные решения, т.е. Tco и Tei, как показано ниже

Код: Выделить всё

# Create a Gekko model
m = GEKKO()

# Define Tco as a decision variable
Tco = m.Var(value=10, lb=303, ub=304)
Tei= m.Var(value=10, lb=287, ub=288)

# Predict Pel using the trained neural network
predicted_Pel = Gekko_NN_SKlearn(mlp, mma, m).predict([Tco, Tei])

# Set the predicted Pel value as the objective to minimize
m.Minimize(predicted_Pel)

# Solve the optimization problem
m.solve(disp=False)

# Print the optimized Tco and corresponding predicted Pel value
print('Optimized Tco:', Tco.value[0])
print('Optimized Predicted Pel:', predicted_Pel.value[0])
print('Gekko Solvetime:', m.options.SOLVETIME, 's')
ValueError: операнды не могут быть переданы вместе с фигурами (3,) (2,)
Я хочу получить решение с двумя или более переменными решения.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -2-decisio

Вернуться в «Python»