123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # -*- coding:utf-8 -*-
- """
- @author: yq
- @time: 2024/1/2
- @desc: 特征筛选基类
- """
- import abc
- from typing import Dict, List
- from entitys import DataProcessConfigEntity, DataPreparedEntity, CandidateFeatureEntity, MetricFucEntity
- 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:
- from pandas.core.common import SettingWithCopyWarning
- import warnings
- warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)
- warnings.simplefilter(action="ignore", category=RuntimeWarning)
- @property
- def data_process_config(self):
- return self._data_process_config
- @abc.abstractmethod
- def filter(self, *args, **kwargs) -> Dict[str, CandidateFeatureEntity]:
- """
- 特征筛选
- """
- pass
- @abc.abstractmethod
- def feature_generate(self, *args, **kwargs) -> DataPreparedEntity:
- """
- 特征转换
- """
- pass
- @abc.abstractmethod
- def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucEntity]:
- """
- 特征报告
- """
- pass
|