fix(Config): rename sliding_window_size to initial_window_size (#235)

This commit is contained in:
Mark Aron Szulyovszky
2022-03-13 16:05:16 +01:00
committed by GitHub
parent 717e0ac979
commit 95b0499430
11 changed files with 19 additions and 19 deletions
+1 -1
View File
@@ -131,7 +131,7 @@ def __preprocess_transformations_config(config_dict: dict) -> dict:
get_scaler(config_dict["scaler"]),
get_pca(
config_dict["dimensionality_reduction_ratio"],
config_dict["sliding_window_size"],
config_dict["initial_window_size"],
),
get_rfe(config_dict["n_features_to_select"]),
]
+1 -1
View File
@@ -16,7 +16,7 @@ def get_default_config() -> RawConfig:
return RawConfig(
dimensionality_reduction_ratio=0.5,
n_features_to_select=50,
sliding_window_size=3800,
initial_window_size=3800,
retrain_every=2000,
scaler="minmax", # 'normalize' 'minmax' 'standardize' 'robust'
assets=["fivemin_crypto"],
+1 -1
View File
@@ -12,7 +12,7 @@ parameters:
value: ['daily_etf']
exogenous_data:
value: ['daily_glassnode']
sliding_window_size:
initial_window_size:
value: 380
distribution: categorical
n_features_to_select:
+2 -2
View File
@@ -13,7 +13,7 @@ from transformations.base import Transformation
class RawConfig(BaseModel):
dimensionality_reduction_ratio: float
n_features_to_select: int
sliding_window_size: int
initial_window_size: int
retrain_every: int
scaler: Literal["normalize", "minmax", "standardize", "robust"]
@@ -39,7 +39,7 @@ class RawConfig(BaseModel):
@dataclass
class Config:
sliding_window_size: int
initial_window_size: int
retrain_every: int
assets: DataCollection
+1 -1
View File
@@ -18,4 +18,4 @@ def check_data(X: XDataFrame, config: Config) -> bool:
def has_enough_samples_to_train(X: XDataFrame, config: Config) -> bool:
first_valid_index = get_first_valid_return_index(X.iloc[:, 0])
samples_to_train = len(X) - first_valid_index
return samples_to_train > (config.sliding_window_size * 2) + 100
return samples_to_train > (config.initial_window_size * 2) + 100
+2 -2
View File
@@ -50,7 +50,7 @@ def bet_sizing_with_meta_model(
X=meta_X,
y=meta_y,
forward_returns=forward_returns,
window_size=config.sliding_window_size,
window_size=config.initial_window_size,
retrain_every=config.retrain_every,
from_index=from_index,
transformations=transformations,
@@ -62,7 +62,7 @@ def bet_sizing_with_meta_model(
y=meta_y,
forward_returns=forward_returns,
model=model,
sliding_window_size=config.sliding_window_size,
initial_window_size=config.initial_window_size,
retrain_every=config.retrain_every,
from_index=from_index,
level="meta",
+2 -2
View File
@@ -30,7 +30,7 @@ def train_directional_model(
X=X,
y=y,
forward_returns=forward_returns,
window_size=config.sliding_window_size,
window_size=config.initial_window_size,
retrain_every=config.retrain_every,
from_index=from_index,
transformations=transformations,
@@ -44,7 +44,7 @@ def train_directional_model(
y=y,
forward_returns=forward_returns,
model=model,
sliding_window_size=config.sliding_window_size,
initial_window_size=config.initial_window_size,
retrain_every=config.retrain_every,
from_index=from_index,
level="primary",
+3 -3
View File
@@ -19,7 +19,7 @@ def train_model(
y: pd.Series,
forward_returns: pd.Series,
model: Model,
sliding_window_size: int,
initial_window_size: int,
retrain_every: int,
from_index: Optional[pd.Timestamp],
level: str,
@@ -42,7 +42,7 @@ def train_model(
y=y,
forward_returns=forward_returns,
expanding_window=True,
window_size=sliding_window_size,
window_size=initial_window_size,
retrain_every=retrain_every,
from_index=from_index,
transformations_over_time=transformations_over_time,
@@ -59,7 +59,7 @@ def train_model(
transformations_over_time=transformations_over_time,
X=X,
expanding_window=True,
window_size=sliding_window_size,
window_size=initial_window_size,
retrain_every=retrain_every,
from_index=from_index,
)
+3 -3
View File
@@ -10,15 +10,15 @@ class PCATransformation(Transformation):
pca: PCA
def __init__(self, ratio_components_to_keep: float, sliding_window_size: int):
def __init__(self, ratio_components_to_keep: float, initial_window_size: int):
self.ratio_components_to_keep = ratio_components_to_keep
self.sliding_window_size = sliding_window_size
self.initial_window_size = initial_window_size
def fit(self, X: pd.DataFrame, y: Optional[pd.Series] = None) -> None:
self.pca = PCA(
n_components=min(
int(len(X.columns) * self.ratio_components_to_keep),
self.sliding_window_size,
self.initial_window_size,
)
)
self.pca.fit(X, y)
+2 -2
View File
@@ -19,13 +19,13 @@ def get_rfe(n_feature_to_select: int) -> Optional[RFETransformation]:
def get_pca(
ratio_components_to_keep: float, sliding_window_size: int
ratio_components_to_keep: float, initial_window_size: int
) -> Optional[PCATransformation]:
if ratio_components_to_keep > 0:
return PCATransformation(
ratio_components_to_keep=ratio_components_to_keep,
sliding_window_size=sliding_window_size,
initial_window_size=initial_window_size,
)
else:
return None
+1 -1
View File
@@ -44,7 +44,7 @@ def evaluate_predictions(
labels: list[int],
transaction_costs: float,
) -> Stats:
# ignore the predictions until we see a non-zero returns (and definitely skip the first sliding_window_size)
# ignore the predictions until we see a non-zero returns (and definitely skip the first initial_window_size)
evaluate_from = max(
get_first_valid_return_index(forward_returns),
get_first_valid_return_index(y_pred),