| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- """
- The :mod:`sklearn.exceptions` module includes all custom warnings and error
- classes used across scikit-learn.
- """
- __all__ = [
- "NotFittedError",
- "ConvergenceWarning",
- "DataConversionWarning",
- "DataDimensionalityWarning",
- "EfficiencyWarning",
- "FitFailedWarning",
- "SkipTestWarning",
- "UndefinedMetricWarning",
- "PositiveSpectrumWarning",
- "UnsetMetadataPassedError",
- ]
- class UnsetMetadataPassedError(ValueError):
- """Exception class to raise if a metadata is passed which is not explicitly \
- requested.
- .. versionadded:: 1.3
- Parameters
- ----------
- message : str
- The message
- unrequested_params : dict
- A dictionary of parameters and their values which are provided but not
- requested.
- routed_params : dict
- A dictionary of routed parameters.
- """
- def __init__(self, *, message, unrequested_params, routed_params):
- super().__init__(message)
- self.unrequested_params = unrequested_params
- self.routed_params = routed_params
- 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.
- Examples
- --------
- >>> from sklearn.svm import LinearSVC
- >>> from sklearn.exceptions import NotFittedError
- >>> try:
- ... LinearSVC().predict([[1, 2], [2, 3], [3, 4]])
- ... except NotFittedError as e:
- ... print(repr(e))
- NotFittedError("This LinearSVC instance is not fitted yet. Call 'fit' with
- appropriate arguments before using this estimator."...)
- .. versionchanged:: 0.18
- Moved from sklearn.utils.validation.
- """
- class ConvergenceWarning(UserWarning):
- """Custom warning to capture convergence problems
- .. versionchanged:: 0.18
- Moved from sklearn.utils.
- """
- class DataConversionWarning(UserWarning):
- """Warning used to notify implicit data conversions happening in the code.
- This warning occurs when some input data needs to be converted or
- interpreted in a way that may not match the user's expectations.
- For example, this warning may occur when the user
- - passes an integer array to a function which expects float input and
- will convert the input
- - requests a non-copying operation, but a copy is required to meet the
- implementation's data-type expectations;
- - passes an input whose shape can be interpreted ambiguously.
- .. versionchanged:: 0.18
- Moved from sklearn.utils.validation.
- """
- class DataDimensionalityWarning(UserWarning):
- """Custom warning to notify potential issues with data dimensionality.
- For example, in random projection, this warning is raised when the
- number of components, which quantifies the dimensionality of the target
- projection space, is higher than the number of features, which quantifies
- the dimensionality of the original source space, to imply that the
- dimensionality of the problem will not be reduced.
- .. versionchanged:: 0.18
- Moved from sklearn.utils.
- """
- class EfficiencyWarning(UserWarning):
- """Warning used to notify the user of inefficient computation.
- This warning notifies the user that the efficiency may not be optimal due
- to some reason which may be included as a part of the warning message.
- This may be subclassed into a more specific Warning class.
- .. versionadded:: 0.18
- """
- class FitFailedWarning(RuntimeWarning):
- """Warning class used if there is an error while fitting the estimator.
- This Warning is used in meta estimators GridSearchCV and RandomizedSearchCV
- and the cross-validation helper function cross_val_score to warn when there
- is an error while fitting the estimator.
- .. versionchanged:: 0.18
- Moved from sklearn.cross_validation.
- """
- class SkipTestWarning(UserWarning):
- """Warning class used to notify the user of a test that was skipped.
- For example, one of the estimator checks requires a pandas import.
- If the pandas package cannot be imported, the test will be skipped rather
- than register as a failure.
- """
- class UndefinedMetricWarning(UserWarning):
- """Warning used when the metric is invalid
- .. versionchanged:: 0.18
- Moved from sklearn.base.
- """
- class PositiveSpectrumWarning(UserWarning):
- """Warning raised when the eigenvalues of a PSD matrix have issues
- This warning is typically raised by ``_check_psd_eigenvalues`` when the
- eigenvalues of a positive semidefinite (PSD) matrix such as a gram matrix
- (kernel) present significant negative eigenvalues, or bad conditioning i.e.
- very small non-zero eigenvalues compared to the largest eigenvalue.
- .. versionadded:: 0.22
- """
- class InconsistentVersionWarning(UserWarning):
- """Warning raised when an estimator is unpickled with a inconsistent version.
- Parameters
- ----------
- estimator_name : str
- Estimator name.
- current_sklearn_version : str
- Current scikit-learn version.
- original_sklearn_version : str
- Original scikit-learn version.
- """
- def __init__(
- self, *, estimator_name, current_sklearn_version, original_sklearn_version
- ):
- self.estimator_name = estimator_name
- self.current_sklearn_version = current_sklearn_version
- self.original_sklearn_version = original_sklearn_version
- def __str__(self):
- return (
- f"Trying to unpickle estimator {self.estimator_name} from version"
- f" {self.original_sklearn_version} when "
- f"using version {self.current_sklearn_version}. This might lead to breaking"
- " code or "
- "invalid results. Use at your own risk. "
- "For more info please refer to:\n"
- "https://scikit-learn.org/stable/model_persistence.html"
- "#security-maintainability-limitations"
- )
|