Esempio n. 1
0
    def test_from_yaml_serializes_correctly_with_feature_union(
            self, feature_union_classifier: DFFeatureUnion,
            tmp_path: pathlib.Path):

        model = Model(feature_union_classifier)
        result = model.to_dict()

        log = Log(name="test",
                  metrics=Metrics.from_list(["accuracy"]),
                  estimator=result)
        log.save_log(tmp_path)

        new_model = Model.from_yaml(log.output_path)

        assert len(new_model.estimator.steps[0][1].transformer_list) == 2
        new_steps = new_model.estimator.steps
        old_steps = model.estimator.steps

        assert new_steps[0][0] == old_steps[0][0]
        assert isinstance(new_steps[0][1], type(old_steps[0][1]))

        new_union = new_steps[0][1].transformer_list
        old_union = old_steps[0][1].transformer_list

        assert len(new_union) == len(old_union)

        for new_transform, old_transform in zip(new_union, old_union):
            assert new_transform[1].steps[0][0] == old_transform[1].steps[0][0]
            assert (new_transform[1].steps[0][1].get_params() ==
                    old_transform[1].steps[0][1].get_params())
Esempio n. 2
0
 def test_can_load_serialized_model_from_estimator(self, classifier: Model,
                                                   tmp_path: pathlib.Path):
     log = Log(
         name="test",
         estimator=classifier.to_dict(),
         metrics=Metrics([Metric("accuracy", score=1.0)]),
     )
     log.save_log(tmp_path)
     model2 = Model.from_yaml(log.output_path)
     assert model2.estimator.get_params(
     ) == classifier.estimator.get_params()
Esempio n. 3
0
    def test_can_load_serialized_model_from_pipeline(self,
                                                     pipeline_linear: Pipeline,
                                                     tmp_path: pathlib.Path):
        model = Model(pipeline_linear)
        log = Log(
            name="test",
            estimator=model.to_dict(),
            metrics=Metrics([Metric("accuracy", score=1.0)]),
        )
        log.save_log(tmp_path)
        model2 = Model.from_yaml(log.output_path)

        for model1, model2 in zip(model.estimator.steps,
                                  model2.estimator.steps):
            assert model1[0] == model2[0]
            assert model1[1].get_params() == model2[1].get_params()