TensorFlow
This commit is contained in:
@@ -108,17 +108,17 @@ def normalize(df):
|
||||
return df
|
||||
|
||||
|
||||
class Zeus_LGBMRegressor(IStrategy):
|
||||
class Zeus_TensorFlow(IStrategy):
|
||||
startup_candle_count = 24 * 12
|
||||
|
||||
# Machine Learning
|
||||
model_indicators = []
|
||||
indicator_target = 'percent12'
|
||||
|
||||
model = None
|
||||
model_indicators = []
|
||||
indicator_target = 'mid_smooth_5'
|
||||
# Tensorflow
|
||||
lookback = 60
|
||||
future_steps = 12
|
||||
y_no_scale = False
|
||||
|
||||
path = f"user_data/plots/"
|
||||
|
||||
@@ -3040,8 +3040,8 @@ class Zeus_LGBMRegressor(IStrategy):
|
||||
|
||||
# 7) Sauvegarde
|
||||
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_y.npy", self.scaler_y.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_)
|
||||
|
||||
def tensorFlowPrepareDataFrame(self, dataframe, future_steps, lookback):
|
||||
target = self.indicator_target
|
||||
@@ -3062,8 +3062,13 @@ class Zeus_LGBMRegressor(IStrategy):
|
||||
# 4) Normalisation
|
||||
self.scaler_X = MinMaxScaler()
|
||||
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
|
||||
X_seq = []
|
||||
y_seq = []
|
||||
@@ -3152,10 +3157,12 @@ class Zeus_LGBMRegressor(IStrategy):
|
||||
X_seq.append(X_scaled[i:i + lookback])
|
||||
X_seq = np.array(X_seq)
|
||||
|
||||
|
||||
# prédictions
|
||||
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
|
||||
preds = [np.nan] * len(dataframe)
|
||||
start = lookback
|
||||
|
||||
Reference in New Issue
Block a user