feature_strategy_base.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 variable_analyse(self, *args, **kwargs):
  28. """
  29. 单个变量分析
  30. """
  31. pass
  32. @abc.abstractmethod
  33. def feature_generate(self, *args, **kwargs) -> pd.DataFrame:
  34. """
  35. 特征转换
  36. """
  37. pass
  38. @abc.abstractmethod
  39. def feature_save(self, *args, **kwargs):
  40. """
  41. 特征保存
  42. """
  43. pass
  44. @abc.abstractmethod
  45. def feature_load(self, path: str, *args, **kwargs):
  46. """
  47. 特征加载
  48. """
  49. pass
  50. @abc.abstractmethod
  51. def feature_report(self, *args, **kwargs) -> Dict[str, MetricFucResultEntity]:
  52. """
  53. 特征报告
  54. """
  55. pass
  56. @abc.abstractmethod
  57. def jupyter_print(self, *args, **kwargs):
  58. """
  59. notebook输出
  60. """
  61. pass