feature_strategy_base.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. import pandas as pd
  10. from entitys import MlConfigEntity, MetricFucResultEntity
  11. class FeatureStrategyBase(metaclass=abc.ABCMeta):
  12. def __init__(self, ml_config: MlConfigEntity = None, *args, **kwargs):
  13. if ml_config is not None:
  14. self._ml_config = ml_config
  15. else:
  16. self._ml_config = MlConfigEntity(*args, **kwargs)
  17. @property
  18. def ml_config(self):
  19. return self._ml_config
  20. @abc.abstractmethod
  21. def feature_search(self, *args, **kwargs):
  22. """
  23. 特征筛选
  24. """
  25. pass
  26. @abc.abstractmethod
  27. def feature_generate(self, *args, **kwargs) -> pd.DataFrame:
  28. """
  29. 特征转换
  30. """
  31. pass
  32. @abc.abstractmethod
  33. def feature_save(self, *args, **kwargs):
  34. """
  35. 特征保存
  36. """
  37. pass
  38. @abc.abstractmethod
  39. def feature_load(self, path: str, *args, **kwargs):
  40. """
  41. 特征加载
  42. """
  43. pass
  44. @abc.abstractmethod
  45. def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucResultEntity]:
  46. """
  47. 特征报告
  48. """
  49. pass
  50. @abc.abstractmethod
  51. def jupyter_print(self, *args, **kwargs):
  52. """
  53. notebook输出
  54. """
  55. pass