ИтеративныйЗаполнятельПропусков
- classsklearn.impute.IterativeImputer(estimator=None, *, missing_values=nan, sample_posterior=False, max_iter=10, tol=0.001, n_nearest_features=None, initial_strategy='mean', fill_value=None, imputation_order='ascending', skip_complete=False, min_value=-inf, max_value=inf, verbose=0, random_state=None, add_indicator=False, keep_empty_features=False)[source]
-
Многомерный импутер, который оценивает каждый признак по всем остальным.
Стратегия для импутации пропущенных значений, моделирующая каждый признак с пропущенными значениями как функцию от других признаков в порядке очереди.
Подробнее см. в Руководстве пользователя.
Добавлен в версии 0.21.
Примечание
В настоящее время этот оценщик всё ещё находится в стадии экспериментальной разработки: прогнозы и API могут изменяться без предварительного уведомления. Чтобы использовать его, вам необходимо явно импортировать
enable_iterative_imputer:>>> # explicitly require this experimental feature >>> from sklearn.experimental import enable_iterative_imputer # noqa >>> # now you can import normally from sklearn.impute >>> from sklearn.impute import IterativeImputer
- Параметры:
-
- estimatorобъект оценщика, по умолчанию=BayesianRidge()
-
Оценщик, который используется на каждом шаге импутации по кругу. Если
sample_posterior=True, оценщик должен поддерживатьreturn_stdв своём методеpredict. - missing_valuesint или np.nan, по умолчанию=np.nan
-
Плейсхолдер для пропущенных значений. Все вхождения
missing_valuesбудут импутированы. Для pandas' фреймов данных со ссылочными целочисленными типами данных с пропущенными значениями,missing_valuesдолжно быть установлено вnp.nan, посколькуpd.NAбудет преобразовано вnp.nan. - sample_posteriorbool, по умолчанию=False
-
Выбирать ли образец из (гауссова) предсказательного апостериорного распределения обученного оценщика для каждой импутации. Оценщик должен поддерживать
return_stdв своём методеpredictесли установлено значениеTrue. Устанавливается вTrueпри использованииIterativeImputerдля множественных импутаций. - max_iterint, по умолчанию=10
-
Максимальное количество раундов импутации, которые необходимо выполнить, прежде чем возвратить вычисления, выполненные в последнем раунде. Один раунд - это одна импутация каждого признака с пропущенными значениями. Критерий остановки выполняется, когда
max(abs(X_t - X_{t-1}))/max(abs(X[known_vals])) < tol, гдеX_tравноXна итерацииt. Обратите внимание, что раннее завершение применяется только еслиsample_posterior=False. - tolfloat, по умолчанию=1e-3
-
Допуск условия остановки.
- n_nearest_featuresint, по умолчанию=None
-
Количество других признаков, используемых для оценки пропущенных значений каждого столбца признаков. Близость между признаками измеряется абсолютным коэффициентом корреляции между каждой парой признаков (после начальной импутации). Чтобы обеспечить покрытие признаков на протяжении всего процесса импутации, соседние признаки не обязательно самые близкие, но выбираются с вероятностью, пропорциональной корреляции для каждого импутированного целевого признака. Может значительно ускорить вычисления, когда количество признаков очень велико. Если
None, будут использованы все признаки. - initial_strategy{‘mean’, ‘median’, ‘most_frequent’, ‘constant’}, по умолчанию=’mean’
-
Какая стратегия используется для инициализации пропущенных значений. Такая же, как параметр
strategyвSimpleImputer. - fill_valueстрока или числовое значение, по умолчанию=None
-
Когда
strategy="constant",fill_valueиспользуется для замены всех вхождений missing_values. Для строковых или объектных типов данных,fill_valueдолжна быть строкой. ЕслиNone,fill_valueбудет 0 при импутации числовых данных и “missing_value” для строковых или объектных типов данных.Добавлен в версии 1.3.
- imputation_order{‘ascending’, ‘descending’, ‘roman’, ‘arabic’, ‘random’}, по умолчанию=’ascending’
-
Порядок, в котором будут импутироваться признаки. Возможные значения:
-
'ascending': От признаков с наименьшим количеством пропущенных значений к наибольшему. -
'descending': От признаков с наибольшим количеством пропущенных значений к наименьшему. -
'roman': Слева направо. -
'arabic': Справа налево. -
'random': Случайный порядок для каждого раунда.
-
- skip_completebool, по умолчанию=False
-
Если
True, то признаки с пропущенными значениями во времяtransform, которые не имели пропущенных значений во времяfit, будут импутированы только с помощью метода начальной импутации. Устанавливается вTrueесли у вас много признаков без пропущенных значений как во времяfit, так иtransformдля экономии вычислительных ресурсов. - min_valuefloat или array-like формы (n_features,), по умолчанию=-np.inf
-
Минимально возможное импутированное значение. Распространяется до формы
(n_features,)если скаляр. Если массив-подобный, ожидается форма(n_features,), одно минимальное значение для каждого признака. По умолчанию-np.inf.Изменено в версии 0.23: Добавлена поддержка array-like.
- max_valuefloat или array-like формы (n_features,), по умолчанию=np.inf
-
Максимально возможное импутированное значение. Распространяется до формы
(n_features,)если скаляр. Если массив-подобный, ожидается форма(n_features,), одно максимальное значение для каждого признака. По умолчаниюnp.inf.Изменено в версии 0.23: Добавлена поддержка array-like.
- verboseint, по умолчанию=0
-
Флаг отображения подробностей, управляет отображением сообщений отладки, которые генерируются при оценке функций. Чем выше, тем более подробная информация. Может быть 0, 1 или 2.
- random_stateint, RandomState instance или None, по умолчанию=None
-
Зерно псевдослучайного генератора. Случайный выбор признаков оценщика, если
n_nearest_featuresнеNone, выборкаimputation_orderеслиrandom, и выборка из апостериорного распределения, еслиsample_posterior=True. Используйте целое число для детерминизма. См. Словарь. - add_indicatorbool, по умолчанию=False
-
Если
True, трансформацияMissingIndicatorбудет добавлена к результату трансформации импутера. Это позволяет оценочному методу учитывать пропущенные значения, несмотря на импутацию. Если признак не имеет пропущенных значений во время подгонки/обучения, признак не будет отображаться в индикаторе пропущенных значений, даже если есть пропущенные значения во время преобразования/тестирования. - keep_empty_featuresbool, по умолчанию=False
-
Если True, признаки, состоящие исключительно из пропущенных значений, когда
fitвызван, возвращаются в результатах при вызовеtransform. Импутированное значение всегда0, за исключением случаев, когдаinitial_strategy="constant", в этом случае используетсяfill_value.Добавлен в версии 1.2.
- Атрибуты:
-
-
initial_imputer_объект типа
SimpleImputer -
Импутер, используемый для инициализации пропущенных значений.
- imputation_sequence_список кортежей
-
Каждый кортеж содержит
(feat_idx, neighbor_feat_idx, estimator), гдеfeat_idx- текущий признак, который нужно импутировать,neighbor_feat_idx- массив других признаков, используемых для импутации текущего признака, иestimator- обученный оценщик, используемый для импутации. Длина равнаself.n_features_with_missing_ * self.n_iter_. - n_iter_int
-
Количество раундов итераций, которые произошли. Будет меньше
self.max_iterесли критерий раннего завершения был достигнут. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлен в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Названия признаков, увиденные во время fit. Определяются только если
Xимеет имена признаков, которые все строки.Добавлен в версии 1.0.
- n_features_with_missing_int
-
Количество признаков с пропущенными значениями.
-
indicator_
MissingIndicator -
Индикатор, используемый для добавления двоичных индикаторов для пропущенных значений.
Noneеслиadd_indicator=False. - random_state_RandomState instance
-
RandomState instance, сгенерированный либо из зерна, либо из генератора случайных чисел, либо
np.random.
-
initial_imputer_объект типа
См. также
SimpleImputer-
Унивариантный импутер для заполнения пропущенных значений простыми стратегиями.
KNNImputer-
Мультивариативный импутер, который оценивает пропущенные признаки, используя ближайшие образцы.
Примечания
Для поддержки импутации в индуктивном режиме мы храним оценщик каждого признака во время фазы
fitи предсказываем без повторной подгонки (последовательно) во время фазыtransform.Признаки, содержащие все пропущенные значения на этапе
fit, отбрасываются при выполненииtransform.Используя значения по умолчанию, импутер масштабируется в \(\mathcal{O}(knp^3\min(n,p))\), где \(k\) =
max_iter, \(n\) — количество образцов, а \(p\) — количество признаков. Это становится чрезмерно затратным при увеличении количества признаков. Установкаn_nearest_features << n_features,skip_complete=Trueили увеличениеtolможет помочь снизить вычислительную стоимость.В зависимости от характера пропущенных значений, простые импутеры могут быть предпочтительнее в контексте прогнозирования.
Ссылки
Примеры
>>> import numpy as np >>> from sklearn.experimental import enable_iterative_imputer >>> from sklearn.impute import IterativeImputer >>> imp_mean = IterativeImputer(random_state=0) >>> imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]]) IterativeImputer(random_state=0) >>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]] >>> imp_mean.transform(X) array([[ 6.9584..., 2. , 3. ], [ 4. , 2.6000..., 6. ], [10. , 4.9999..., 9. ]])Более подробный пример см. в Заполнение пропущенных значений перед построением оценщика или Заполнение пропущенных значений с вариантами IterativeImputer.
- fit(X, y=None, **fit_params)[source]
-
Обучает импутер на
Xи возвращает self.- Параметры:
-
- Xarray-like, shape (n_samples, n_features)
-
Входные данные, где
n_samples— количество образцов, аn_features— количество признаков. - yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- **fit_paramsdict
-
Параметры передаются методу
fitпод-оценщика через API маршрутизации метаданных.Добавлена в версии 1.5: Доступна только если
sklearn.set_config(enable_metadata_routing=True)установлено. См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
-
- selfobject
-
Обученный оценщик.
- fit_transform(X, y=None, **params)[source]
-
Обучает импутер на
Xи возвращает преобразованныеX.- Параметры:
-
- Xarray-like, shape (n_samples, n_features)
-
Входные данные, где
n_samples— количество образцов, аn_features— количество признаков. - yИгнорируется
-
Не используется, присутствует для согласованности API по соглашению.
- **paramsdict
-
Параметры передаются методу
fitпод-оценщика через API маршрутизации метаданных.Добавлена в версии 1.5: Доступна только если
sklearn.set_config(enable_metadata_routing=True)установлено. См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
-
- Xtarray-like, shape (n_samples, n_features)
-
Заполненные входные данные.
- get_feature_names_out(input_features=None)[source]
-
Получение имён выходных признаков для преобразования.
- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Входные признаки.
- Если
input_featuresравноNone, тогдаfeature_names_in_используется в качестве имён признаков. Еслиfeature_names_in_не определено, то генерируются следующие имена входных признаков:["x0", "x1", ..., "x(n_features_in_ - 1)"]. - Если
input_featuresявляется array-like, тогдаinput_featuresдолжно совпадать сfeature_names_in_, еслиfeature_names_in_определено.
- Если
- Возвращает:
-
- feature_names_outndarray of str objects
-
Имена преобразованных признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
Добавлена в версии 1.5.
- Возвращает:
-
- routingMetadataRouter
-
A
MetadataRouterencapsulating routing information.
- get_params(deep=True)[source]
-
Получение параметров этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и вложенных подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- set_output(*, transform=None)[source]
-
Установить контейнер вывода.
См. Введение в API set_output, чтобы узнать, как использовать API.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настроить вывод
transformиfit_transform.-
"default": Формат вывода по умолчанию трансформатора -
"pandas": Вывод DataFrame -
"polars": Вывод Polars -
None: Конфигурация преобразования не изменена
Добавлена в версии 1.4:
"polars"параметр был добавлен. -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Заполнить все отсутствующие значения в
X. Обратите внимание, что это стохастический процесс, и еслиrandom_stateне фиксирован, повторяющиеся вызовы или перестановки входных данных приведут к различным результатам.- Параметры:
-
- Xarray-like, форма (n_samples, n_features)
-
Входные данные для заполнения.
- Возвращает:
-
- Xtarray-like, форма (n_samples, n_features)
-
Входные данные после заполнения пропусков.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.impute.IterativeImputer.html