TensorFlow

This commit is contained in:
Jérôme Delacotte
2025-11-16 21:05:48 +01:00
parent dfe04a3f0c
commit a376e37e61

View File

@@ -108,17 +108,17 @@ def normalize(df):
return df return df
class Zeus_LGBMRegressor(IStrategy): class Zeus_TensorFlow(IStrategy):
startup_candle_count = 24 * 12 startup_candle_count = 24 * 12
# Machine Learning # Machine Learning
model_indicators = []
indicator_target = 'percent12'
model = None model = None
model_indicators = []
indicator_target = 'mid_smooth_5'
# Tensorflow # Tensorflow
lookback = 60 lookback = 60
future_steps = 12 future_steps = 12
y_no_scale = False
path = f"user_data/plots/" path = f"user_data/plots/"
@@ -3040,8 +3040,8 @@ class Zeus_LGBMRegressor(IStrategy):
# 7) Sauvegarde # 7) Sauvegarde
self.model.save(f"{self.path}/lstm_model.keras") self.model.save(f"{self.path}/lstm_model.keras")
np.save(f"{self.path}/lstm_scaler_X.npy", self.scaler_X.data_max_) # np.save(f"{self.path}/lstm_scaler_X.npy", self.scaler_X.data_max_)
np.save(f"{self.path}/lstm_scaler_y.npy", self.scaler_y.data_max_) # np.save(f"{self.path}/lstm_scaler_y.npy", self.scaler_y.data_max_)
def tensorFlowPrepareDataFrame(self, dataframe, future_steps, lookback): def tensorFlowPrepareDataFrame(self, dataframe, future_steps, lookback):
target = self.indicator_target target = self.indicator_target
@@ -3062,8 +3062,13 @@ class Zeus_LGBMRegressor(IStrategy):
# 4) Normalisation # 4) Normalisation
self.scaler_X = MinMaxScaler() self.scaler_X = MinMaxScaler()
X_scaled = self.scaler_X.fit_transform(X_values) X_scaled = self.scaler_X.fit_transform(X_values)
self.scaler_y = MinMaxScaler()
y_scaled = self.scaler_y.fit_transform(y_values) if self.y_no_scale:
y_scaled = y_values
else:
self.scaler_y = MinMaxScaler()
y_scaled = self.scaler_y.fit_transform(y_values)
# 5) Création des fenêtres glissantes # 5) Création des fenêtres glissantes
X_seq = [] X_seq = []
y_seq = [] y_seq = []
@@ -3152,10 +3157,12 @@ class Zeus_LGBMRegressor(IStrategy):
X_seq.append(X_scaled[i:i + lookback]) X_seq.append(X_scaled[i:i + lookback])
X_seq = np.array(X_seq) X_seq = np.array(X_seq)
# prédictions # prédictions
y_pred_scaled = model.predict(X_seq, verbose=0).flatten() y_pred_scaled = model.predict(X_seq, verbose=0).flatten()
y_pred = self.scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).flatten() if self.y_no_scale:
y_pred = y_pred_scaled
else:
y_pred = self.scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).flatten()
# alignement avec les données # alignement avec les données
preds = [np.nan] * len(dataframe) preds = [np.nan] * len(dataframe)
start = lookback start = lookback