# -*- coding:utf-8 -*- """ @author: yq @time: 2024/1/2 @desc: 特征筛选基类 """ import abc from typing import Dict, Tuple, List from entitys import DataProcessConfigEntity, DataPreparedEntity, CandidateFeatureEntity, MetricFucEntity from init import warning_ignore class FilterStrategyBase(metaclass=abc.ABCMeta): def __init__(self, data_process_config: DataProcessConfigEntity = None, *args, **kwargs): if data_process_config is not None: self._data_process_config = data_process_config else: self._data_process_config = DataProcessConfigEntity(*args, **kwargs) jupyter = self._data_process_config.jupyter if jupyter: warning_ignore() @property def data_process_config(self): return self._data_process_config @abc.abstractmethod def filter(self, *args, **kwargs) -> Tuple[Dict[str, CandidateFeatureEntity], Dict[str, List[CandidateFeatureEntity]]]: """ 特征筛选 """ pass @abc.abstractmethod def feature_generate(self, *args, **kwargs) -> DataPreparedEntity: """ 特征转换 """ pass @abc.abstractmethod def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucEntity]: """ 特征报告 """ pass