filter_strategy_base.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # -*- coding:utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/1/2
  5. @desc: 特征筛选基类
  6. """
  7. import abc
  8. from typing import Dict
  9. from entitys import DataProcessConfigEntity, DataPreparedEntity, CandidateFeatureEntity, MetricFucEntity
  10. from init import warning_ignore
  11. class FilterStrategyBase(metaclass=abc.ABCMeta):
  12. def __init__(self, data_process_config: DataProcessConfigEntity = None, *args, **kwargs):
  13. if data_process_config is not None:
  14. self._data_process_config = data_process_config
  15. else:
  16. self._data_process_config = DataProcessConfigEntity(*args, **kwargs)
  17. jupyter = self._data_process_config.jupyter
  18. if jupyter:
  19. warning_ignore()
  20. @property
  21. def data_process_config(self):
  22. return self._data_process_config
  23. @abc.abstractmethod
  24. def filter(self, *args, **kwargs) -> Dict[str, CandidateFeatureEntity]:
  25. """
  26. 特征筛选
  27. """
  28. pass
  29. @abc.abstractmethod
  30. def feature_generate(self, *args, **kwargs) -> DataPreparedEntity:
  31. """
  32. 特征转换
  33. """
  34. pass
  35. @abc.abstractmethod
  36. def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucEntity]:
  37. """
  38. 特征报告
  39. """
  40. pass