示例#1
0
    def test_transform(self):
        # When there is no classifier assigned
        tx = get_transformer('hard')
        with self.assertRaises(AssertionError):
            tx.transform(self.X)

        # When there is a classifier assigned
        clf = RandomForestClassifier(n_estimators=10)
        clf.fit(self.X, self.Y)
        tx = get_transformer('hard', clf)
        transformed = tx.transform(self.X)
        self.assertIsInstance(transformed, numpy.ndarray)
        self.assertEqual(transformed.shape[1], 1)
        self.assertEqual(transformed.shape[0], self.X.shape[0])
        self.assertEqual(2, len(transformed.shape))
示例#2
0
    def compile(self, n_jobs=2) -> Pipeline:
        """
        To Build the ensemble. This method should be called only if all models in base
        are already fitted.
        :return:
        """
        meta_features = []
        for i, mdl in enumerate(self.models):
            meta_features.append((mdl.__class__.__name__ + str(i),
                                  get_transformer(kind=self._get_voting(i),
                                                  clf=mdl)))

        self.ensemble = Pipeline(
            steps=[('base_layer', FeatureUnion(meta_features, n_jobs=n_jobs)
                    ), ('final_layer', self.meta_model)])

        return self.ensemble
示例#3
0
 def test_fit(self):
     clf = RandomForestClassifier(n_estimators=10)
     clf.fit(self.X, self.Y)
     tx = get_transformer('soft', clf)
     fit = tx.fit(self.X, self.Y)
     self.assertIsInstance(fit, SoftClassifierTransformer)
示例#4
0
 def test_get(self):
     tx = get_transformer('soft')
     self.assertIsInstance(tx, SoftClassifierTransformer)
示例#5
0
 def test_get(self):
     tx = get_transformer('hard')
     self.assertIsInstance(tx, HardClassifierTransformer)