Suppress scikit-learn DeprecationWarning in hyperopt

This commit is contained in:
hroff-1902 2019-05-15 13:35:09 +03:00
parent 6d17cd50fe
commit 64becdf895
3 changed files with 33 additions and 4 deletions

View File

@ -5,10 +5,10 @@ from pandas import DataFrame
from typing import Dict, Any, Callable, List from typing import Dict, Any, Callable, List
from functools import reduce from functools import reduce
from skopt.space import Categorical, Dimension, Integer, Real
import freqtrade.vendor.qtpylib.indicators as qtpylib import freqtrade.vendor.qtpylib.indicators as qtpylib
from freqtrade.optimize.hyperopt_interface import IHyperOpt from freqtrade.optimize.hyperopt_interface import IHyperOpt
from freqtrade.optimize.hyperopt_interface import Categorical, Dimension, Integer, Real
class_name = 'DefaultHyperOpts' class_name = 'DefaultHyperOpts'

View File

@ -7,7 +7,35 @@ from abc import ABC, abstractmethod
from typing import Dict, Any, Callable, List from typing import Dict, Any, Callable, List
from pandas import DataFrame from pandas import DataFrame
from skopt.space import Dimension
#
# Filter warnings from importing scikit-learn via skopt.
# scikit-learn specifically forces warnings to be displayed, which we don't like.
#
# See:
# https://github.com/scikit-learn/scikit-learn/issues/2531
# https://github.com/ims-tcl/DeRE/commit/cb865fedddf6977cb7536b8c4334dc2325d09e53
# https://stackoverflow.com/questions/32612180/eliminating-warnings-from-scikit-learn
# for more details.
#
# Use
# from freqtrade.optimize.hyperopt_interface import Categorical, Dimension, Integer, Real
# instead of
# from skopt.space import Categorical, Dimension, Integer, Real
# in the custom HyperOpts to get rid of this deprecation warning
# (refer to default_hyperopt.py for example) without implementing this ugly
# workaround in every custom HyperOpts.
#
# Let's wait till scikit-learn v0.23 and skopt using it
# where it will probably be eliminated...
#
import warnings
def warn(*args, **kwargs):
pass
old_warn = warnings.showwarning
warnings.showwarning = warn
from skopt.space import Categorical, Dimension, Integer, Real
warnings.showwarning = old_warn
class IHyperOpt(ABC): class IHyperOpt(ABC):

View File

@ -6,10 +6,11 @@ from typing import Dict, Any, Callable, List
from functools import reduce from functools import reduce
import numpy import numpy
from skopt.space import Categorical, Dimension, Integer, Real
import freqtrade.vendor.qtpylib.indicators as qtpylib import freqtrade.vendor.qtpylib.indicators as qtpylib
from freqtrade.optimize.hyperopt_interface import IHyperOpt from freqtrade.optimize.hyperopt_interface import IHyperOpt
from freqtrade.optimize.hyperopt_interface import Categorical, Dimension, Integer, Real
class_name = 'SampleHyperOpts' class_name = 'SampleHyperOpts'