sklearn.utils.validation
.check_is_fitted#
- sklearn.utils.validation.check_is_fitted(estimator, attributes=None, *, msg=None, all_or_any=<built-in function all>)[source]#
Perform is_fitted validation for estimator.
Checks if the estimator is fitted by verifying the presence of fitted attributes (ending with a trailing underscore) and otherwise raises a NotFittedError with the given message.
If an estimator does not set any attributes with a trailing underscore, it can define a
__sklearn_is_fitted__
method returning a boolean to specify if the estimator is fitted or not. See __sklearn_is_fitted__ as Developer API for an example on how to use the API.- Parameters:
- estimatorestimator instance
Estimator instance for which the check is performed.
- attributesstr, list or tuple of str, default=None
Attribute name(s) given as string or a list/tuple of strings Eg.:
["coef_", "estimator_", ...], "coef_"
If
None
,estimator
is considered fitted if there exist an attribute that ends with a underscore and does not start with double underscore.- msgstr, default=None
The default error message is, “This %(name)s instance is not fitted yet. Call ‘fit’ with appropriate arguments before using this estimator.”
For custom messages if “%(name)s” is present in the message string, it is substituted for the estimator name.
Eg. : “Estimator, %(name)s, must be fitted before sparsifying”.
- all_or_anycallable, {all, any}, default=all
Specify whether all or any of the given attributes must exist.
- Raises:
- TypeError
If the estimator is a class or not an estimator instance
- NotFittedError
If the attributes are not found.
Examples
>>> from sklearn.linear_model import LogisticRegression >>> from sklearn.utils.validation import check_is_fitted >>> from sklearn.exceptions import NotFittedError >>> lr = LogisticRegression() >>> try: ... check_is_fitted(lr) ... except NotFittedError as exc: ... print(f"Model is not fitted yet.") Model is not fitted yet. >>> lr.fit([[1, 2], [1, 3]], [1, 0]) LogisticRegression() >>> check_is_fitted(lr)
Examples using sklearn.utils.validation.check_is_fitted
#
__sklearn_is_fitted__ as Developer API