mirror of
https://github.com/webclinic017/drift.git
synced 2026-08-15 11:58:07 +00:00
feat(Events): added EventFilter, EventLabeller (#186)
This commit is contained in:
@@ -5,14 +5,14 @@ import pandas as pd
|
||||
from models.base import Model
|
||||
from reporting.types import Reporting
|
||||
from typing import Union, Optional
|
||||
from config.config import Config
|
||||
from config.types import Config
|
||||
|
||||
def train_meta_labeling_model(
|
||||
target_asset: str,
|
||||
X: pd.DataFrame,
|
||||
input_predictions: pd.Series,
|
||||
y: pd.Series,
|
||||
target_returns: pd.Series,
|
||||
forward_returns: pd.Series,
|
||||
models: list[tuple[str, Model]],
|
||||
config: Config,
|
||||
model_suffix: str,
|
||||
@@ -30,7 +30,7 @@ def train_meta_labeling_model(
|
||||
ticker_to_predict = "prediction_correct",
|
||||
X = meta_X,
|
||||
y = meta_y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
models = models,
|
||||
expanding_window = config.expanding_window_meta_labeling,
|
||||
sliding_window_size = config.sliding_window_size_meta_labeling,
|
||||
@@ -52,7 +52,7 @@ def train_meta_labeling_model(
|
||||
|
||||
meta_result = evaluate_predictions(
|
||||
model_name = "Meta",
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
y_pred = avg_predictions_with_sizing,
|
||||
y_true = y,
|
||||
no_of_classes = 'two',
|
||||
|
||||
@@ -3,8 +3,7 @@ from typing import Literal, Optional, Union
|
||||
from training.walk_forward import walk_forward_train, walk_forward_inference
|
||||
from utils.evaluate import evaluate_predictions
|
||||
from models.base import Model
|
||||
from utils.scaler import get_scaler
|
||||
from utils.types import ScalerTypes
|
||||
from transformations.scaler import get_scaler, ScalerTypes
|
||||
from reporting.types import Reporting
|
||||
from transformations.rfe import RFETransformation
|
||||
from transformations.pca import PCATransformation
|
||||
@@ -13,7 +12,7 @@ def train_primary_model(
|
||||
ticker_to_predict: str,
|
||||
X: pd.DataFrame,
|
||||
y: pd.Series,
|
||||
target_returns: pd.Series,
|
||||
forward_returns: pd.Series,
|
||||
models: list[tuple[str, Model]],
|
||||
expanding_window: bool,
|
||||
sliding_window_size: int,
|
||||
@@ -46,7 +45,7 @@ def train_primary_model(
|
||||
model = model,
|
||||
X = X,
|
||||
y = y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
expanding_window = expanding_window,
|
||||
window_size = sliding_window_size,
|
||||
retrain_every = retrain_every,
|
||||
@@ -76,7 +75,7 @@ def train_primary_model(
|
||||
assert len(preds) == len(y)
|
||||
result = evaluate_predictions(
|
||||
model_name = model_name,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
y_pred = preds,
|
||||
y_true = y,
|
||||
no_of_classes=no_of_classes,
|
||||
|
||||
@@ -7,13 +7,13 @@ from training.meta_labeling import train_meta_labeling_model
|
||||
|
||||
from reporting.types import Reporting
|
||||
from typing import Union, Optional
|
||||
from config.config import Config
|
||||
from config.types import Config
|
||||
|
||||
|
||||
def primary_step(
|
||||
X: pd.DataFrame,
|
||||
y: pd.Series,
|
||||
target_returns: pd.Series,
|
||||
forward_returns: pd.Series,
|
||||
config: Config,
|
||||
reporting: Reporting,
|
||||
from_index: Optional[pd.Timestamp],
|
||||
@@ -26,7 +26,7 @@ def primary_step(
|
||||
ticker_to_predict = config.target_asset[1],
|
||||
X = X,
|
||||
y = y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
models = config.primary_models,
|
||||
expanding_window = config.expanding_window_base,
|
||||
sliding_window_size = config.sliding_window_size_base,
|
||||
@@ -50,7 +50,7 @@ def primary_step(
|
||||
X = X,
|
||||
input_predictions= primary_model_predictions,
|
||||
y = y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
model_suffix = 'meta',
|
||||
models = config.meta_labeling_models,
|
||||
config = config,
|
||||
@@ -75,7 +75,7 @@ def secondary_step(
|
||||
X:pd.DataFrame,
|
||||
y:pd.Series,
|
||||
current_predictions:pd.DataFrame,
|
||||
target_returns:pd.Series,
|
||||
forward_returns:pd.Series,
|
||||
config: Config,
|
||||
reporting: Reporting,
|
||||
from_index: Optional[pd.Timestamp],
|
||||
@@ -89,7 +89,7 @@ def secondary_step(
|
||||
ticker_to_predict = config.target_asset[1],
|
||||
X = current_predictions,
|
||||
y = y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
models = [config.ensemble_model],
|
||||
expanding_window = False,
|
||||
sliding_window_size = 1,
|
||||
@@ -117,7 +117,7 @@ def secondary_step(
|
||||
X = X,
|
||||
input_predictions= ensemble_predictions,
|
||||
y = y,
|
||||
target_returns = target_returns,
|
||||
forward_returns = forward_returns,
|
||||
models = config.meta_labeling_models,
|
||||
config = config,
|
||||
model_suffix = 'ensemble',
|
||||
|
||||
@@ -11,7 +11,7 @@ def walk_forward_train(
|
||||
model: Model,
|
||||
X: pd.DataFrame,
|
||||
y: pd.Series,
|
||||
target_returns: pd.Series,
|
||||
forward_returns: pd.Series,
|
||||
expanding_window: bool,
|
||||
window_size: int,
|
||||
retrain_every: int,
|
||||
@@ -23,7 +23,7 @@ def walk_forward_train(
|
||||
models_over_time = pd.Series(index=y.index).rename(model_name)
|
||||
transformations_over_time = [pd.Series(index=y.index).rename(t.get_name()) for t in transformations]
|
||||
|
||||
first_nonzero_return = max(get_first_valid_return_index(target_returns), get_first_valid_return_index(X.iloc[:,0]), get_first_valid_return_index(y))
|
||||
first_nonzero_return = max(get_first_valid_return_index(forward_returns), get_first_valid_return_index(X.iloc[:,0]), get_first_valid_return_index(y))
|
||||
train_from = first_nonzero_return + window_size + 1 if from_index is None else X.index.to_list().index(from_index)
|
||||
train_till = len(y)
|
||||
iterations_before_retrain = 0
|
||||
|
||||
Reference in New Issue
Block a user