首页 > 解决方案 > 类型错误:check_is_fitted() 缺少 1 个必需的位置参数:“属性”

问题描述

我正在尝试运行官方教程给出的代码。但是,我收到错误

类型错误:check_is_fitted() 缺少 1 个必需的位置参数:“属性”

from sklearn.utils.estimator_checks import check_estimator
import numpy as np
from sklearn.base import BaseEstimator, ClassifierMixin
from sklearn.utils.validation import check_X_y, check_array, check_is_fitted
from sklearn.utils.multiclass import unique_labels
from sklearn.metrics import euclidean_distances


class TemplateClassifier(BaseEstimator, ClassifierMixin):
    def __init__(self, demo_param='demo'):
        self.demo_param = demo_param

    def fit(self, X, y):

        # Check that X and y have correct shape
        X, y = check_X_y(X, y)
        # Store the classes seen during fit
        self.classes_ = unique_labels(y)

        self.X_ = X
        self.y_ = y
        # Return the classifier
        return self

    def predict(self, X):

        # Check is fit had been called
        check_is_fitted(self)

        # Input validation
        X = check_array(X)

        closest = np.argmin(euclidean_distances(X, self.X_), axis=1)
        return self.y_[closest]

if __name__ == '__main__':
    check_estimator(TemplateClassifier)

标签: pythonscikit-learn

解决方案


将 scikit-learn 更新到 0.23 对我来说效果很好。


推荐阅读