# -*- coding:utf-8 -*- """ @author: yq @time: 2024/1/2 @desc: 特征筛选基类 """ import abc from typing import Dict import pandas as pd from entitys import MlConfigEntity, MetricFucResultEntity class FeatureStrategyBase(metaclass=abc.ABCMeta): def __init__(self, ml_config: MlConfigEntity = None, *args, **kwargs): if ml_config is not None: self._ml_config = ml_config else: self._ml_config = MlConfigEntity(*args, **kwargs) @property def ml_config(self): return self._ml_config @abc.abstractmethod def feature_search(self, *args, **kwargs): """ 特征筛选 """ pass @abc.abstractmethod def variable_analyse(self, *args, **kwargs): """ 单个变量分析 """ pass @abc.abstractmethod def feature_generate(self, *args, **kwargs) -> pd.DataFrame: """ 特征转换 """ pass @abc.abstractmethod def feature_save(self, *args, **kwargs): """ 特征保存 """ pass @abc.abstractmethod def feature_load(self, path: str, *args, **kwargs): """ 特征加载 """ pass @abc.abstractmethod def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucResultEntity]: """ 特征报告 """ pass @abc.abstractmethod def jupyter_print(self, *args, **kwargs): """ notebook输出 """ pass