mirror of
https://github.com/webclinic017/drift.git
synced 2026-08-18 21:38:09 +00:00
chore(Linter): reformatted code with black (#211)
* chore(Linter): reformatted code with black * Create black.yaml
This commit is contained in:
@@ -3,6 +3,7 @@ from ..types import EventLabeller, EventsDataFrame
|
||||
import pandas as pd
|
||||
from .utils import create_forward_returns
|
||||
|
||||
|
||||
class FixedTimeHorionThreeClassBalancedEventLabeller(EventLabeller):
|
||||
|
||||
time_horizon: int
|
||||
@@ -10,7 +11,9 @@ class FixedTimeHorionThreeClassBalancedEventLabeller(EventLabeller):
|
||||
def __init__(self, time_horizon: int):
|
||||
self.time_horizon = time_horizon
|
||||
|
||||
def label_events(self, event_start_times: pd.DatetimeIndex, returns: ReturnSeries) -> tuple[EventsDataFrame, ForwardReturnSeries]:
|
||||
def label_events(
|
||||
self, event_start_times: pd.DatetimeIndex, returns: ReturnSeries
|
||||
) -> tuple[EventsDataFrame, ForwardReturnSeries]:
|
||||
|
||||
forward_returns = create_forward_returns(returns, self.time_horizon)
|
||||
cutoff_point = returns.index[-self.time_horizon]
|
||||
@@ -18,7 +21,7 @@ class FixedTimeHorionThreeClassBalancedEventLabeller(EventLabeller):
|
||||
event_candidates = forward_returns[event_start_times]
|
||||
|
||||
def get_bins_threeway(x):
|
||||
bins = pd.qcut(event_candidates, 3, retbins=True, duplicates = 'drop')[1]
|
||||
bins = pd.qcut(event_candidates, 3, retbins=True, duplicates="drop")[1]
|
||||
|
||||
if len(bins) != 4:
|
||||
# if we don't have enough data for the quantiles, we'll need to add hard-coded values
|
||||
@@ -26,6 +29,7 @@ class FixedTimeHorionThreeClassBalancedEventLabeller(EventLabeller):
|
||||
upper_bound = bins[-1]
|
||||
bins = [lower_bound] + [-0.02, 0.02] + [upper_bound]
|
||||
return bins
|
||||
|
||||
bins = get_bins_threeway(event_candidates)
|
||||
|
||||
def map_class_threeway(current_value):
|
||||
@@ -37,12 +41,17 @@ class FixedTimeHorionThreeClassBalancedEventLabeller(EventLabeller):
|
||||
return 0
|
||||
else:
|
||||
return 1
|
||||
labels = event_candidates.map(map_class_threeway)
|
||||
|
||||
return (pd.DataFrame({
|
||||
'start': event_start_times,
|
||||
'end': event_start_times + pd.Timedelta(days=self.time_horizon),
|
||||
'label': labels,
|
||||
'returns': forward_returns[event_start_times]
|
||||
}), forward_returns[event_start_times])
|
||||
|
||||
labels = event_candidates.map(map_class_threeway)
|
||||
|
||||
return (
|
||||
pd.DataFrame(
|
||||
{
|
||||
"start": event_start_times,
|
||||
"end": event_start_times + pd.Timedelta(days=self.time_horizon),
|
||||
"label": labels,
|
||||
"returns": forward_returns[event_start_times],
|
||||
}
|
||||
),
|
||||
forward_returns[event_start_times],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user