Пример #1
0
        model = BinModel(newmodels[0].get_xx(), allmodel)

        return model

    # Both models are BinModels
    @staticmethod
    def combine(one, two):
        if not one.scaled or not two.scaled:
            raise ValueError("Cannot combine unscaled models")

        (one, two, xx) = UnivariateModel.intersect_x(one, two)

        allxx = set(one.xx) | set(two.xx)
        allxx = np.array(allxx)
        midpts = (allxx[1:] + allxx[:-1]) / 2
        onemodel = one.model.recategorize_x(map(model.get_bin_at, midpts), range(1, len(allxx)))
        twomodel = two.model.recategorize_x(map(model.get_bin_at, midpts), range(1, len(allxx)))

        model = Model.combine([onemodel, twomodel], [1, 1])

        return BinModel(allxx, model, True)

from ddp_model import DDPModel

Model.mergers["bin_model"] = BinModel.merge
Model.mergers["bin_model+ddp_model"] = lambda models: DDPModel.merge(map(lambda m: m.to_ddp(), models))
Model.mergers["bin_model+spline_model"] = lambda models: DDPModel.merge(map(lambda m: m.to_ddp(), models))
Model.combiners['bin_model+bin_model'] = BinModel.combine
Model.combiners["bin_model+ddp_model"] = lambda one, two: DDPModel.combine(one.to_ddp(), two)
Model.combiners["bin_model+spline_model"] = lambda one, two: DDPModel.combine(one.to_ddp(), two)
Пример #2
0
        if not one.scaled or not two.scaled:
            raise ValueError("Cannot combine unscaled models")

        (one, two, xx) = UnivariateModel.intersect_x(one, two)

        allxx = set(one.xx) | set(two.xx)
        allxx = np.array(allxx)
        midpts = (allxx[1:] + allxx[:-1]) / 2
        onemodel = one.model.recategorize_x(map(model.get_bin_at, midpts),
                                            range(1, len(allxx)))
        twomodel = two.model.recategorize_x(map(model.get_bin_at, midpts),
                                            range(1, len(allxx)))

        model = Model.combine([onemodel, twomodel], [1, 1])

        return BinModel(allxx, model, True)


from ddp_model import DDPModel

Model.mergers["bin_model"] = BinModel.merge
Model.mergers["bin_model+ddp_model"] = lambda models: DDPModel.merge(
    map(lambda m: m.to_ddp(), models))
Model.mergers["bin_model+spline_model"] = lambda models: DDPModel.merge(
    map(lambda m: m.to_ddp(), models))
Model.combiners['bin_model+bin_model'] = BinModel.combine
Model.combiners["bin_model+ddp_model"] = lambda one, two: DDPModel.combine(
    one.to_ddp(), two)
Model.combiners["bin_model+spline_model"] = lambda one, two: DDPModel.combine(
    one.to_ddp(), two)