Я пытаюсь использовать scikitlearn для прогнозирования новых данных, используя объект конвейера, который я обучал еще в феврале. С пятницы, 28 февраля, функция прогнозирования больше не работает для моего объекта конвейера, ссылаясь на ошибку:
>>> df = pd.read_csv('test_df_for_example.csv')
>>> mdl = joblib.load('split_0_model.pkl')
>>> mdl.predict(df)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/metaestimators.py", line 116, in <lambda>
out = lambda *args, **kwargs: self.fn(obj, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/pipeline.py", line 419, in predict
Xt = transform.transform(Xt)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/compose/_column_transformer.py", line 587, in transform
self._validate_features(X.shape[1], X_feature_names)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/compose/_column_transformer.py", line 411, in _validate_features
if ((self._feature_names_in is None or feature_names is None)
AttributeError: 'ColumnTransformer' object has no attribute '_feature_names_in'
Я использую виртуальные машины Microsoft Azure для этого прогнозирования (хотя приведенный выше код Я работал на своем локальном компьютере), поэтому работа с версиями модулей затруднена, и большую часть времени я вынужден использовать последние версии пакетов. Я считаю, что эта ошибка происходит из новой версии scikitlearn 0.22.2.post1, которую я использую.
У меня есть пример CSV с данными тестирования здесь
Файл модели маринованный с помощью joblib здесь
и код для воспроизведения ошибки здесь
И файл среды yaml здесь
Можно ли как-нибудь обновить мою модель, чтобы эта ошибка не возникала?
Спасибо! Kristine