Как я могу устранить ошибку TypeError, полученную при работе с feature_engine - PullRequest
0 голосов
/ 05 августа 2020

Я работаю с feature_engine, чтобы заполнить недостающие значения

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# from feature-engine
from feature_engine import missing_data_imputers as mdi

#Working with House Data and Feature Engine__Practice
cols_to_use = [
    'BsmtQual', 'FireplaceQu', 'LotFrontage', 'MasVnrArea', 'GarageYrBlt',
]
data = pd.read_csv(r'C:\Users\HP\Desktop\Hash\kaggle\Housing Project/train.csv', usecols=cols_to_use)

Я создал экземпляр mdi, чтобы он соответствовал моим данным

imputer = mdi.MeanMedianImputer(imputation_method='median')
imputer.fit(data)

Но при вызове метода преобразования он возвращает ошибку TypeError из которых я не могу найти причину, почему это произошло.

tmp = imputer.transform(data)

Вот возвращенная ошибка

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-2f486acb96bd> in <module>
----> 1 tmp = imputer.transform(data)

~\Anaconda3\lib\site-packages\feature_engine\missing_data_imputers.py in transform(self, X)
    103     # Ugly work around to import the docstring for Sphinx, otherwise none of this is necessary
    104     def transform(self, X):
--> 105         X = super().transform(X)
    106         return X
    107 

~\Anaconda3\lib\site-packages\feature_engine\base_transformers.py in transform(self, X)
     35 
     36         # Check method fit has been called
---> 37         check_is_fitted(self)
     38 
     39         # check that input is a dataframe

TypeError: check_is_fitted() missing 1 required positional argument: 'attributes'

1 Ответ

1 голос
/ 05 августа 2020

Глядя на предоставленную вами трассировку стека, мне кажется, что это несовместимо между feature_engine и старой версией scikit-learn. В более старых версиях (например, 0,21 ) attributes был обязательным параметром для check_is_fitted, но в более новых версиях (например, 0,23 ) это необязательно:

Если None, estimator считается подходящим, если существует атрибут, который заканчивается знаком подчеркивания и не начинается с двойного подчеркивания.

...