Ejemplo n.º 1
0
 def __init__(self, estimator, file_path: str = None):
     """
     初始化函数
     :param estimator: 学习器, 学习器fit必须包含权重参数
     :param file_path: 最终建模使用样本输出路径
     """
     TrainerMixin.__init__(self)
     self.estimator = estimator
     self.file_path = file_path
Ejemplo n.º 2
0
 def __init__(self, algorithm: str = None, params: Dict = None):
     """
     初始化函数
     :param algorithm: 算法名称, 缩写lr, gbdt, rf, lgb, xgb
     :param params: 算法参数
     """
     TrainerMixin.__init__(self)
     self.algorithm = algorithm
     self.params = params
     self.create_estimator()
Ejemplo n.º 3
0
 def __init__(self, estimator, file_path: str = None, k: int = 10):
     """
     初始化函数
     :param estimator: 学习器
     :param file_path: 最终建模使用样本输出路径
     :param k: 分箱数量
     """
     TrainerMixin.__init__(self)
     self.estimator = estimator
     self.file_path = file_path
     self.k = k
Ejemplo n.º 4
0
 def __init__(self, classifiers: List = None, voting: str = 'soft', weights: List = None):
     """
     投票法-初始化函数
     :param classifiers: 模型融合使用分类算法列表,内含学习器, 例:[clf1,clf2,clf3]
     :param voting: 投票法参数,投票方式。'soft': 使用类概率的投票, 'hard': 使用类标签的投票
     :param weights: 投票法参数,学习器权重. 例:[2,1,1] 代表学习器权重比值
     :return:
     """
     assert classifiers is not None, 'classifiers列表为空'
     TrainerMixin.__init__(self)
     self.classifiers = classifiers
     self.voting = voting
     self.weights = weights
     self.create_estimator()
Ejemplo n.º 5
0
 def __init__(self, classifiers: List = None, meta_classifier=None, use_probas=True, cv: int = 5):
     """
     stackingCV-初始化函数, 相对于stack增加交叉验证
     :param classifiers: 模型融合使用分类算法列表,内含学习器, 例:[clf1,clf2,clf3]
     :param meta_classifier: 基模型预测结果,采用该分类器进行训练
     :param use_probas: True, 使用基模型预测概率列表作为结果,否则使用基学习器预测类别作为结果
     :param cv: 交叉验证折数
     :return:
     """
     assert classifiers is not None, 'classifiers参数为空'
     assert meta_classifier is not None, 'meta_classifier参数为空'
     TrainerMixin.__init__(self)
     self.classifiers = classifiers
     self.meta_classifier = meta_classifier
     self.use_probas = use_probas
     self.cv = cv
     self.create_estimator()
Ejemplo n.º 6
0
 def __init__(self,
              estimator,
              method_dict: dict = None,
              file_path: str = None):
     """
     初始化函数
     :param estimator: 学习器
     :param method_dict: 需要进行迭代的方法参数字典,只包括硬截断法HC(method_dict={'name':,'IK':}),
                         模糊展开法FA(method_dict={'name':}),外推法Ep(method_dict={'name':,'k':,'IK_down':,'IK_up':})
     :param file_path: 最终建模使用样本输出路径
     """
     TrainerMixin.__init__(self)
     self.estimator = estimator
     assert method_dict['name'] in ['HC', 'FA',
                                    'Ep'], 'method_dict中name参数赋值错误'
     self.method_dict = method_dict
     self.file_path = file_path
Ejemplo n.º 7
0
 def __init__(self,
              estimator,
              IK: float = 2,
              flag: bool = True,
              file_path: str = None):
     """
     初始化函数
     :param estimator: 学习器
     :param IK: 经验风险因子,业务实际bad rate/放贷样本bad rate
     :param flag: 是否抛弃拒绝样本中的灰样本
     :param file_path: 最终建模使用样本输出路径
     """
     TrainerMixin.__init__(self)
     self.estimator = estimator
     self.IK = IK
     self.flag = flag
     self.file_path = file_path
Ejemplo n.º 8
0
 def __init__(self, classifiers: List = None, meta_classifier=None, use_probas=True, average_probas=False):
     """
     stacking-初始化函数
     将训练好的所有基模型对整个训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,
     最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测
     :param classifiers: 模型融合使用分类算法列表,内含学习器, 例:[clf1,clf2,clf3]
     :param meta_classifier: 基模型预测结果,采用该分类器进行训练
     :param use_probas: True, 使用基模型预测概率列表作为结果,否则使用基学习器预测类别作为结果
     :param average_probas: True, 那么这些基分类器对每一个类别产生的概率值会被平均,否则会拼接
     :return:
     """
     assert classifiers is not None, 'classifiers参数为空'
     assert meta_classifier is not None, 'meta_classifier参数为空'
     TrainerMixin.__init__(self)
     self.classifiers = classifiers
     self.meta_classifier = meta_classifier
     self.use_probas = use_probas
     self.average_probas = average_probas
     self.create_estimator()
Ejemplo n.º 9
0
 def __init__(self,
              estimator,
              k: int = 10,
              IK_down: float = 2,
              IK_up: float = 4,
              flag: bool = True,
              file_path: str = None):
     """
     初始化函数
     :param estimator: 学习器
     :param k: 分箱数量
     :param IK_down: 经验风险因子下限,业务实际bad rate/放贷样本bad rate
     :param IK_up: 经验风险因子上限,业务实际bad rate/放贷样本bad rate
     :param flag: 是否抛弃拒绝样本中的灰样本
     :param file_path: 最终建模使用样本输出路径
     """
     TrainerMixin.__init__(self)
     self.estimator = estimator
     self.file_path = file_path
     self.k = k
     self.flag = flag
     self.interval = [IK_down + (IK_up - IK_down) / k * i for i in range(k)]