fix inlier metric in backtesting
This commit is contained in:
parent
f2b875483f
commit
cd514cf15d
@ -92,7 +92,7 @@ class BaseClassifierModel(IFreqaiModel):
|
|||||||
filtered_df = dk.normalize_data_from_metadata(filtered_df)
|
filtered_df = dk.normalize_data_from_metadata(filtered_df)
|
||||||
dk.data_dictionary["prediction_features"] = filtered_df
|
dk.data_dictionary["prediction_features"] = filtered_df
|
||||||
|
|
||||||
self.data_cleaning_predict(dk, filtered_df)
|
self.data_cleaning_predict(dk)
|
||||||
|
|
||||||
predictions = self.model.predict(dk.data_dictionary["prediction_features"])
|
predictions = self.model.predict(dk.data_dictionary["prediction_features"])
|
||||||
pred_df = DataFrame(predictions, columns=dk.label_list)
|
pred_df = DataFrame(predictions, columns=dk.label_list)
|
||||||
|
@ -92,7 +92,7 @@ class BaseRegressionModel(IFreqaiModel):
|
|||||||
dk.data_dictionary["prediction_features"] = filtered_df
|
dk.data_dictionary["prediction_features"] = filtered_df
|
||||||
|
|
||||||
# optional additional data cleaning/analysis
|
# optional additional data cleaning/analysis
|
||||||
self.data_cleaning_predict(dk, filtered_df)
|
self.data_cleaning_predict(dk)
|
||||||
|
|
||||||
predictions = self.model.predict(dk.data_dictionary["prediction_features"])
|
predictions = self.model.predict(dk.data_dictionary["prediction_features"])
|
||||||
pred_df = DataFrame(predictions, columns=dk.label_list)
|
pred_df = DataFrame(predictions, columns=dk.label_list)
|
||||||
|
@ -423,7 +423,7 @@ class FreqaiDataDrawer:
|
|||||||
|
|
||||||
dk.data["data_path"] = str(dk.data_path)
|
dk.data["data_path"] = str(dk.data_path)
|
||||||
dk.data["model_filename"] = str(dk.model_filename)
|
dk.data["model_filename"] = str(dk.model_filename)
|
||||||
dk.data["training_features_list"] = list(dk.data_dictionary["train_features"].columns)
|
dk.data["training_features_list"] = dk.training_features_list
|
||||||
dk.data["label_list"] = dk.label_list
|
dk.data["label_list"] = dk.label_list
|
||||||
# store the metadata
|
# store the metadata
|
||||||
with open(save_path / f"{dk.model_filename}_metadata.json", "w") as fp:
|
with open(save_path / f"{dk.model_filename}_metadata.json", "w") as fp:
|
||||||
|
@ -844,10 +844,12 @@ class FreqaiDataKitchen:
|
|||||||
self.remove_beginning_points_from_data_dict(set_, no_prev_pts)
|
self.remove_beginning_points_from_data_dict(set_, no_prev_pts)
|
||||||
self.data_dictionary[f'{set_}_features'] = pd.concat(
|
self.data_dictionary[f'{set_}_features'] = pd.concat(
|
||||||
[compute_df, inlier_metric], axis=1)
|
[compute_df, inlier_metric], axis=1)
|
||||||
|
# self.find_features(self.data_dictionary[f'{set_}_features'])
|
||||||
else:
|
else:
|
||||||
self.data_dictionary['prediction_features'] = pd.concat(
|
self.data_dictionary['prediction_features'] = pd.concat(
|
||||||
[compute_df, inlier_metric], axis=1)
|
[compute_df, inlier_metric], axis=1)
|
||||||
self.data_dictionary['prediction_features'].fillna(0, inplace=True)
|
self.data_dictionary['prediction_features'].fillna(0, inplace=True)
|
||||||
|
# self.find_features(self.data_dictionary['prediction_features'])
|
||||||
|
|
||||||
logger.info('Inlier metric computed and added to features.')
|
logger.info('Inlier metric computed and added to features.')
|
||||||
|
|
||||||
|
@ -482,13 +482,16 @@ class IFreqaiModel(ABC):
|
|||||||
if self.freqai_info["feature_parameters"].get('noise_standard_deviation', 0):
|
if self.freqai_info["feature_parameters"].get('noise_standard_deviation', 0):
|
||||||
dk.add_noise_to_training_features()
|
dk.add_noise_to_training_features()
|
||||||
|
|
||||||
def data_cleaning_predict(self, dk: FreqaiDataKitchen, dataframe: DataFrame) -> None:
|
def data_cleaning_predict(self, dk: FreqaiDataKitchen) -> None:
|
||||||
"""
|
"""
|
||||||
Base data cleaning method for predict.
|
Base data cleaning method for predict.
|
||||||
Functions here are complementary to the functions of data_cleaning_train.
|
Functions here are complementary to the functions of data_cleaning_train.
|
||||||
"""
|
"""
|
||||||
ft_params = self.freqai_info["feature_parameters"]
|
ft_params = self.freqai_info["feature_parameters"]
|
||||||
|
|
||||||
|
# ensure user is feeding the correct indicators to the model
|
||||||
|
self.check_if_feature_list_matches_strategy(dk)
|
||||||
|
|
||||||
if ft_params.get('inlier_metric_window', 0):
|
if ft_params.get('inlier_metric_window', 0):
|
||||||
dk.compute_inlier_metric(set_='predict')
|
dk.compute_inlier_metric(set_='predict')
|
||||||
|
|
||||||
@ -506,9 +509,6 @@ class IFreqaiModel(ABC):
|
|||||||
if ft_params.get("use_DBSCAN_to_remove_outliers", False):
|
if ft_params.get("use_DBSCAN_to_remove_outliers", False):
|
||||||
dk.use_DBSCAN_to_remove_outliers(predict=True)
|
dk.use_DBSCAN_to_remove_outliers(predict=True)
|
||||||
|
|
||||||
# ensure user is feeding the correct indicators to the model
|
|
||||||
self.check_if_feature_list_matches_strategy(dk)
|
|
||||||
|
|
||||||
def model_exists(self, dk: FreqaiDataKitchen) -> bool:
|
def model_exists(self, dk: FreqaiDataKitchen) -> bool:
|
||||||
"""
|
"""
|
||||||
Given a pair and path, check if a model already exists
|
Given a pair and path, check if a model already exists
|
||||||
|
Loading…
Reference in New Issue
Block a user