feature_strategy_factory.py 823 B

12345678910111213141516171819202122232425262728
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/11/25
  5. @desc: 特征筛选策略工厂
  6. """
  7. from typing import Type
  8. from commom import GeneralException
  9. from enums import FeatureStrategyEnum, ResultCodesEnum
  10. from .bin.strategy_norm import StrategyNorm
  11. from .feature_strategy_base import FeatureStrategyBase
  12. from .woe.strategy_woe import StrategyWoe
  13. strategy_map = {
  14. FeatureStrategyEnum.WOE.value: StrategyWoe,
  15. FeatureStrategyEnum.NORM.value: StrategyNorm
  16. }
  17. class FeatureStrategyFactory():
  18. @staticmethod
  19. def get_strategy(strategy: str) -> Type[FeatureStrategyBase]:
  20. if strategy not in strategy_map.keys():
  21. raise GeneralException(ResultCodesEnum.NOT_FOUND, message=f"特征搜索策略【{strategy}】不存在")
  22. strategy = strategy_map.get(strategy)
  23. return strategy