def assemble_tree_expr(t):
            assembler = TreeModelAssembler(t)

            return utils.apply_bin_op(
                ast.SubroutineExpr(assembler.assemble()),
                ast.NumVal(coef),
                ast.BinNumOpType.MUL)
Пример #2
0
 def _final_transform(self, ast_to_transform):
     if self.average_output:
         coef = 1 / self.n_iter
         return utils.apply_bin_op(ast_to_transform, ast.NumVal(coef),
                                   ast.BinNumOpType.MUL)
     else:
         return super()._final_transform(ast_to_transform)
Пример #3
0
    def assemble(self):
        trees = self.model.estimators_

        def assemble_tree_expr(t):
            assembler = TreeModelAssembler(t)

            return assembler.assemble()

        assembled_trees = [assemble_tree_expr(t) for t in trees]
        return utils.apply_bin_op(
            utils.apply_op_to_expressions(ast.BinNumOpType.ADD,
                                          *assembled_trees),
            ast.NumVal(1 / self.model.n_estimators), ast.BinNumOpType.MUL)
Пример #4
0
    def _assemble_single_output(self,
                                estimator_params,
                                base_score=0.0,
                                split_idx=0):
        estimators_ast = self._assemble_estimators(estimator_params, split_idx)

        tmp_ast = utils.apply_op_to_expressions(ast.BinNumOpType.ADD,
                                                *estimators_ast)

        if base_score != 0.0:
            tmp_ast = utils.apply_bin_op(ast.NumVal(base_score), tmp_ast,
                                         ast.BinNumOpType.ADD)

        result_ast = self._final_transform(tmp_ast)

        return result_ast