Skip to content

Commit

Permalink
Merge pull request freqtrade#11023 from freqtrade/dependabot/pip/deve…
Browse files Browse the repository at this point in the history
…lop/xgboost-2.1.3

chore(deps): bump xgboost from 2.0.3 to 2.1.3
  • Loading branch information
xmatthias authored Dec 8, 2024
2 parents ae1baf5 + eee5d71 commit a30f281
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 34 deletions.
10 changes: 7 additions & 3 deletions freqtrade/freqai/prediction_models/XGBoostRFRegressor.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

from freqtrade.freqai.base_models.BaseRegressionModel import BaseRegressionModel
from freqtrade.freqai.data_kitchen import FreqaiDataKitchen
from freqtrade.freqai.tensorboard import TBCallback


logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -45,7 +44,12 @@ def fit(self, data_dictionary: dict, dk: FreqaiDataKitchen, **kwargs) -> Any:

model = XGBRFRegressor(**self.model_training_parameters)

model.set_params(callbacks=[TBCallback(dk.data_path)])
# Callbacks are not supported for XGBRFRegressor, and version 2.1.x started to throw
# the following error:
# NotImplementedError: `early_stopping_rounds` and `callbacks` are not implemented
# for random forest.

# model.set_params(callbacks=[TBCallback(dk.data_path)])
model.fit(
X=X,
y=y,
Expand All @@ -55,6 +59,6 @@ def fit(self, data_dictionary: dict, dk: FreqaiDataKitchen, **kwargs) -> Any:
xgb_model=xgb_model,
)
# set the callbacks to empty so that we can serialize to disk later
model.set_params(callbacks=[])
# model.set_params(callbacks=[])

return model
2 changes: 1 addition & 1 deletion requirements-freqai.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ catboost==1.2.7; 'arm' not in platform_machine
# Temporary downgrade of matplotlib due to https://github.com/matplotlib/matplotlib/issues/28551
matplotlib==3.9.3
lightgbm==4.5.0
xgboost==2.0.3
xgboost==2.1.3
tensorboard==2.18.0
datasieve==0.1.7
25 changes: 25 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# pragma pylint: disable=missing-docstring
import json
import logging
import platform
import re
from copy import deepcopy
from datetime import datetime, timedelta, timezone
Expand Down Expand Up @@ -517,6 +518,30 @@ def patch_gc(mocker) -> None:
mocker.patch("freqtrade.main.gc_set_threshold")


def is_arm() -> bool:
machine = platform.machine()
return "arm" in machine or "aarch64" in machine


def is_mac() -> bool:
machine = platform.system()
return "Darwin" in machine


@pytest.fixture(autouse=True)
def patch_torch_initlogs(mocker) -> None:
if is_mac():
# Mock torch import completely
import sys
import types

module_name = "torch"
mocked_module = types.ModuleType(module_name)
sys.modules[module_name] = mocked_module
else:
mocker.patch("torch._logging._init_logs")


@pytest.fixture(autouse=True)
def user_dir(mocker, tmp_path) -> Path:
user_dir = tmp_path / "user_data"
Expand Down
25 changes: 0 additions & 25 deletions tests/freqai/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import platform
import sys
from copy import deepcopy
from pathlib import Path
Expand All @@ -20,30 +19,6 @@ def is_py12() -> bool:
return sys.version_info >= (3, 12)


def is_mac() -> bool:
machine = platform.system()
return "Darwin" in machine


def is_arm() -> bool:
machine = platform.machine()
return "arm" in machine or "aarch64" in machine


@pytest.fixture(autouse=True)
def patch_torch_initlogs(mocker) -> None:
if is_mac():
# Mock torch import completely
import sys
import types

module_name = "torch"
mocked_module = types.ModuleType(module_name)
sys.modules[module_name] = mocked_module
else:
mocker.patch("torch._logging._init_logs")


@pytest.fixture(scope="function")
def freqai_conf(default_conf, tmp_path):
freqaiconf = deepcopy(default_conf)
Expand Down
3 changes: 1 addition & 2 deletions tests/freqai/test_freqai_datakitchen.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@
from freqtrade.data.dataprovider import DataProvider
from freqtrade.exceptions import OperationalException
from freqtrade.freqai.data_kitchen import FreqaiDataKitchen
from tests.conftest import get_patched_exchange
from tests.conftest import get_patched_exchange, is_mac
from tests.freqai.conftest import (
get_patched_data_kitchen,
get_patched_freqai_strategy,
is_mac,
make_unfiltered_dataframe,
)

Expand Down
11 changes: 8 additions & 3 deletions tests/freqai/test_freqai_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,16 @@
from freqtrade.optimize.backtesting import Backtesting
from freqtrade.persistence import Trade
from freqtrade.plugins.pairlistmanager import PairListManager
from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re
from tests.freqai.conftest import (
get_patched_freqai_strategy,
from tests.conftest import (
EXMS,
create_mock_trades,
get_patched_exchange,
is_arm,
is_mac,
log_has_re,
)
from tests.freqai.conftest import (
get_patched_freqai_strategy,
make_rl_config,
mock_pytorch_mlp_model_training_parameters,
)
Expand Down

0 comments on commit a30f281

Please sign in to comment.