From: Jérôme Benoit Date: Thu, 30 Jan 2025 20:05:36 +0000 (+0100) Subject: perf: revert to weibull_min X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=1e89e591ff0893a5c8fedd40fceccb6a02749b2e;p=freqai-strategies.git perf: revert to weibull_min Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index 7721f72..111ad93 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -181,8 +181,8 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel): else: di_values = pd.to_numeric(pred_df_full["DI_values"], errors="coerce") di_values = di_values.dropna() - f = spy.stats.genextreme.fit(di_values) - cutoff = spy.stats.genextreme.ppf( + f = spy.stats.weibull_min.fit(di_values) + cutoff = spy.stats.weibull_min.ppf( self.freqai_info.get("outlier_threshold", 0.999), *f ) @@ -209,13 +209,19 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel): return eval_set, eval_weights -def objective(trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params): - train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=candles_step) +def objective( + trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params +): + train_window = trial.suggest_int( + "train_period_candles", 1152, 17280, step=candles_step + ) X = X.tail(train_window) y = y.tail(train_window) train_weights = train_weights[-train_window:] - test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=candles_step) + test_window = trial.suggest_int( + "test_period_candles", 1152, 17280, step=candles_step + ) X_test = X_test.tail(test_window) y_test = y_test.tail(test_window) test_weights = test_weights[-test_window:] diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV3.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV3.py index 8538e3b..e2a0aa2 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV3.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV3.py @@ -127,8 +127,8 @@ class XGBoostRegressorQuickAdapterV3(BaseRegressionModel): else: di_values = pd.to_numeric(pred_df_full["DI_values"], errors="coerce") di_values = di_values.dropna() - f = spy.stats.genextreme.fit(di_values) - cutoff = spy.stats.genextreme.ppf( + f = spy.stats.weibull_min.fit(di_values) + cutoff = spy.stats.weibull_min.ppf( self.freqai_info.get("outlier_threshold", 0.999), *f ) diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index 084e5ee..5908892 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -178,8 +178,8 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel): else: di_values = pd.to_numeric(pred_df_full["DI_values"], errors="coerce") di_values = di_values.dropna() - f = spy.stats.genextreme.fit(di_values) - cutoff = spy.stats.genextreme.ppf( + f = spy.stats.weibull_min.fit(di_values) + cutoff = spy.stats.weibull_min.ppf( self.freqai_info.get("outlier_threshold", 0.999), *f ) @@ -206,13 +206,19 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel): return eval_set, eval_weights -def objective(trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params): - train_window = trial.suggest_int("train_period_candles", 1152, 17280, step=candles_step) +def objective( + trial, X, y, train_weights, X_test, y_test, test_weights, candles_step, params +): + train_window = trial.suggest_int( + "train_period_candles", 1152, 17280, step=candles_step + ) X = X.tail(train_window) y = y.tail(train_window) train_weights = train_weights[-train_window:] - test_window = trial.suggest_int("test_period_candles", 1152, 17280, step=candles_step) + test_window = trial.suggest_int( + "test_period_candles", 1152, 17280, step=candles_step + ) X_test = X_test.tail(test_window) y_test = y_test.tail(test_window) test_weights = test_weights[-test_window:]