Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions sklearn/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,15 @@ class MetaEstimatorMixin(object):
# this is just a tag for the moment


###############################################################################
class NotFittedError(ValueError, AttributeError):
"""Exception class to raise if estimator is used before fitting.

This class inherits from both ValueError and AttributeError to help with
exception handling and backward compatibility.
"""


###############################################################################
# XXX: Temporary solution to figure out if an estimator is a classifier

Expand Down
5 changes: 3 additions & 2 deletions sklearn/cluster/birch.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@
from math import sqrt

from ..metrics.pairwise import euclidean_distances
from ..base import TransformerMixin, ClusterMixin, BaseEstimator
from ..base import (TransformerMixin, ClusterMixin, BaseEstimator,
NotFittedError)
from ..externals.six.moves import xrange
from ..utils import check_array
from ..utils.extmath import row_norms, safe_sparse_dot
from ..utils.validation import NotFittedError, check_is_fitted
from ..utils.validation import check_is_fitted
from .hierarchical import AgglomerativeClustering


Expand Down
2 changes: 1 addition & 1 deletion sklearn/covariance/tests/test_robust_covariance.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
from sklearn.utils.testing import assert_almost_equal
from sklearn.utils.testing import assert_array_almost_equal
from sklearn.utils.testing import assert_raises
from sklearn.utils.validation import NotFittedError

from sklearn import datasets
from sklearn.base import NotFittedError
from sklearn.covariance import empirical_covariance, MinCovDet, \
EllipticEnvelope

Expand Down
4 changes: 2 additions & 2 deletions sklearn/decomposition/kernel_pca.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
from scipy import linalg

from ..utils.arpack import eigsh
from ..utils.validation import check_is_fitted, NotFittedError
from ..base import BaseEstimator, TransformerMixin
from ..utils.validation import check_is_fitted
from ..base import BaseEstimator, TransformerMixin, NotFittedError
from ..preprocessing import KernelCenterer
from ..metrics.pairwise import pairwise_kernels

Expand Down
4 changes: 2 additions & 2 deletions sklearn/ensemble/gradient_boosting.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@
from scipy import stats

from .base import BaseEnsemble
from ..base import BaseEstimator
from ..base import BaseEstimator, NotFittedError
from ..base import ClassifierMixin
from ..base import RegressorMixin
from ..utils import check_random_state, check_array, check_X_y, column_or_1d
from ..utils import check_consistent_length
from ..utils.extmath import logsumexp
from ..utils.fixes import expit, bincount
from ..utils.stats import _weighted_percentile
from ..utils.validation import check_is_fitted, NotFittedError
from ..utils.validation import check_is_fitted
from ..externals import six
from ..feature_selection.from_model import _LearntSelectorMixin

Expand Down
4 changes: 2 additions & 2 deletions sklearn/ensemble/tests/test_gradient_boosting.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
import numpy as np

from sklearn import datasets
from sklearn.base import clone
from sklearn.base import clone, NotFittedError
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble.gradient_boosting import ZeroEstimator
from sklearn.metrics import mean_squared_error

from sklearn.utils import check_random_state, tosequence
from sklearn.utils.testing import assert_almost_equal
from sklearn.utils.testing import assert_array_almost_equal
Expand All @@ -21,7 +22,6 @@
from sklearn.utils.testing import assert_true
from sklearn.utils.testing import assert_warns
from sklearn.utils.validation import DataConversionWarning
from sklearn.utils.validation import NotFittedError

# toy sample
X = [[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]]
Expand Down
4 changes: 2 additions & 2 deletions sklearn/feature_selection/from_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

import numpy as np

from ..base import TransformerMixin
from ..base import TransformerMixin, NotFittedError
from ..externals import six
from ..utils import safe_mask, check_array
from ..utils.validation import NotFittedError, check_is_fitted
from ..utils.validation import check_is_fitted


class _LearntSelectorMixin(TransformerMixin):
Expand Down
5 changes: 3 additions & 2 deletions sklearn/linear_model/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,13 @@

from ..externals import six
from ..externals.joblib import Parallel, delayed
from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
from ..base import (BaseEstimator, ClassifierMixin, RegressorMixin,
NotFittedError)
from ..utils import as_float_array, check_array, check_X_y
from ..utils.extmath import safe_sparse_dot
from ..utils.sparsefuncs import mean_variance_axis, inplace_column_scale
from ..utils.fixes import sparse_lsqr
from ..utils.validation import NotFittedError, check_is_fitted
from ..utils.validation import check_is_fitted


###
Expand Down
3 changes: 1 addition & 2 deletions sklearn/neighbors/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,12 @@

from .ball_tree import BallTree
from .kd_tree import KDTree
from ..base import BaseEstimator
from ..base import BaseEstimator, NotFittedError
from ..metrics import pairwise_distances
from ..metrics.pairwise import PAIRWISE_DISTANCE_FUNCTIONS
from ..utils import check_X_y, check_array
from ..utils.fixes import argpartition
from ..utils.validation import DataConversionWarning
from ..utils.validation import NotFittedError
from ..externals import six


Expand Down
4 changes: 2 additions & 2 deletions sklearn/random_projection.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@
from numpy.testing import assert_equal
import scipy.sparse as sp

from .base import BaseEstimator, TransformerMixin
from .base import BaseEstimator, TransformerMixin, NotFittedError
from .externals import six
from .externals.six.moves import xrange
from .utils import check_random_state
from .utils.extmath import safe_sparse_dot
from .utils.random import sample_without_replacement
from .utils.validation import check_array, NotFittedError
from .utils.validation import check_array
from .utils import DataDimensionalityWarning


Expand Down
5 changes: 3 additions & 2 deletions sklearn/tree/tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
import numpy as np
from scipy.sparse import issparse

from ..base import BaseEstimator, ClassifierMixin, RegressorMixin
from ..base import (BaseEstimator, ClassifierMixin, RegressorMixin,
NotFittedError)
from ..externals import six
from ..feature_selection.from_model import _LearntSelectorMixin
from ..utils import check_array, check_random_state, compute_sample_weight
from ..utils.validation import NotFittedError, check_is_fitted
from ..utils.validation import check_is_fitted


from ._tree import Criterion
Expand Down
4 changes: 2 additions & 2 deletions sklearn/utils/estimator_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
from sklearn.utils.testing import check_skip_travis
from sklearn.utils.testing import ignore_warnings

from sklearn.base import clone, ClassifierMixin
from sklearn.base import clone, ClassifierMixin, NotFittedError
from sklearn.metrics import accuracy_score, adjusted_rand_score, f1_score

from sklearn.lda import LDA
Expand All @@ -36,7 +36,7 @@
from sklearn.svm.base import BaseLibSVM
from sklearn.pipeline import make_pipeline

from sklearn.utils.validation import DataConversionWarning, NotFittedError
from sklearn.utils.validation import DataConversionWarning
from sklearn.cross_validation import train_test_split

from sklearn.utils import shuffle
Expand Down
9 changes: 1 addition & 8 deletions sklearn/utils/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import numpy as np
import scipy.sparse as sp

from ..base import NotFittedError
from ..externals import six
from inspect import getargspec

Expand All @@ -27,14 +28,6 @@ class NonBLASDotWarning(UserWarning):
"""A warning on implicit dispatch to numpy.dot"""


class NotFittedError(ValueError, AttributeError):
"""Exception class to raise if estimator is used before fitting

This class inherits from both ValueError and AttributeError to help with
exception handling and backward compatibility.
"""


# Silenced by default to reduce verbosity. Turn on at runtime for
# performance profiling.
warnings.simplefilter('ignore', NonBLASDotWarning)
Expand Down