Exemple #1
0
    def test_clone_empty_array(self):
        # Regression test for cloning estimators with empty arrays
        clf = MyEstimator(empty=np.array([]))
        clf2 = clone(clf)
        assert_array_equal(clf.empty, clf2.empty)

        clf = MyEstimator(empty=sp.csr_matrix(np.array([[0]])))
        clf2 = clone(clf)
        assert_array_equal(clf.empty.data, clf2.empty.data)
Exemple #2
0
    def test_clone(self):
        # Tests that clone creates a correct deep copy.
        # We create an estimator, make a copy of its original state
        # (which, in this case, is the current state of the estimator),
        # and check that the obtained copy is a correct deep copy.

        from sklearn.feature_selection import SelectFpr, f_classif

        selector = SelectFpr(f_classif, alpha=0.1)
        new_selector = clone(selector)
        assert_true(selector is not new_selector)
        assert_equal(selector.get_params(), new_selector.get_params())

        selector = SelectFpr(f_classif, alpha=np.zeros((10, 2)))
        new_selector = clone(selector)
        assert_true(selector is not new_selector)
Exemple #3
0
    def test_clone_sparse_matrices(self):
        sparse_matrix_classes = [
            getattr(sp, name) for name in dir(sp) if name.endswith('_matrix')
        ]

        for cls in sparse_matrix_classes:
            sparse_matrix = cls(np.eye(5))
            clf = MyEstimator(empty=sparse_matrix)
            clf_cloned = clone(clf)
            assert_true(clf.empty.__class__ is clf_cloned.empty.__class__)
            assert_array_equal(clf.empty.toarray(), clf_cloned.empty.toarray())
Exemple #4
0
    def test_clone_2(self):
        # Tests that clone doesn't copy everything.
        # We first create an estimator, give it an own attribute, and
        # make a copy of its original state. Then we check that the copy doesn't
        # have the specific attribute we manually added to the initial estimator.

        from sklearn.feature_selection import SelectFpr, f_classif

        selector = SelectFpr(f_classif, alpha=0.1)
        selector.own_attribute = "test"
        new_selector = clone(selector)
        assert_false(hasattr(new_selector, "own_attribute"))
Exemple #5
0
    def test_clone_nan(self):
        # Regression test for cloning estimators with default parameter as np.nan
        clf = MyEstimator(empty=np.nan)
        clf2 = clone(clf)

        assert_true(clf.empty is clf2.empty)