feat(HPO): added run_hpo script (#237)

* feat(HPO): added `run_hpo` script

* fix(Linter): ran

* feat(HPO): removed any reference to sweep (superseeded by optuna)

* fix(HPO): optimize for sharpe

* fix(Config): removed glassnode data, save trials from hpo

* feat(Labelling): added three-balanced method works again

* fix(BetSizing): set the correct class labels

* fix(HPO): powerset should return what's expected, added two new normalization methods

* fix(Linter): ran

* fix(DataLoader): sort the dataframe when fetching data

* fix(Config): only take z-score of other assets
This commit is contained in:
Mark Aron Szulyovszky
2022-03-15 14:43:16 +01:00
committed by GitHub
parent 345b48a67c
commit b5ddee8dce
30 changed files with 126 additions and 115 deletions
+19 -2
View File
@@ -3,9 +3,18 @@ from .pca import PCATransformation
from .sklearn import SKLearnTransformation
from typing import Literal, Optional
from models.model_map import default_feature_selector_classification
from sklearn.preprocessing import MinMaxScaler, Normalizer, StandardScaler, RobustScaler
from sklearn.preprocessing import (
MinMaxScaler,
Normalizer,
StandardScaler,
RobustScaler,
PowerTransformer,
QuantileTransformer,
)
ScalerTypes = Literal["normalize", "minmax", "standardize", "robust"]
ScalerTypes = Literal[
"normalize", "minmax", "standardize", "robust", "box-cox", "quantile"
]
def get_rfe(n_feature_to_select: int) -> Optional[RFETransformation]:
@@ -42,5 +51,13 @@ def get_scaler(type: ScalerTypes) -> SKLearnTransformation:
return SKLearnTransformation(
RobustScaler(with_centering=False, quantile_range=(0.10, 0.90))
)
elif type == "box-cox":
return SKLearnTransformation(
PowerTransformer(method="box-cox", standardize=True)
)
elif type == "quantile":
return SKLearnTransformation(
QuantileTransformer(n_quantiles=100, output_distribution="normal")
)
else:
raise Exception("Scaler type not supported")