feature_strategy_factory.py 729 B

1234567891011121314151617181920212223242526
  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 .feature_strategy_base import FeatureStrategyBase
  11. from .woe.strategy_woe import StrategyWoe
  12. strategy_map = {
  13. FeatureStrategyEnum.WOE.value: StrategyWoe
  14. }
  15. class FeatureStrategyFactory():
  16. @staticmethod
  17. def get_strategy(strategy: str) -> Type[FeatureStrategyBase]:
  18. if strategy not in strategy_map.keys():
  19. raise GeneralException(ResultCodesEnum.NOT_FOUND, message=f"特征搜索策略【{strategy}】不存在")
  20. strategy = strategy_map.get(strategy)
  21. return strategy