IterativeImputer
- 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)[исходный код]
-
Многомерный импьютер, который оценивает каждый признак на основе всех остальных.
Стратегия заполнения пропущенных значений, при которой каждый признак с пропущенными значениями моделируется как функция других признаков по кругу.
Подробнее см. в руководстве пользователя.
Добавлено в версии 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 с nullable integer dtypes и пропущенными значениями параметрmissing_valuesследует установить вnp.nan, посколькуpd.NAбудет преобразовано вnp.nan. - sample_posteriorbool, по умолчанию=False
-
Следует ли выбирать значения из (гауссовского) апостериорного распределения предсказаний обученного оценивателя для каждого заполнения. Если параметр установлен в
True, оцениватель должен поддерживатьreturn_stdв своём методеpredict. Установите в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_valuestr или числовое значение, по умолчанию=None
-
Если
strategy="constant", для замены всех вхождений missing_values используетсяfill_value. Для строковых типов данных или типов objectfill_valueдолжно быть строкой. ЕслиNone,fill_valueбудет равно 0 при заполнении числовых данных и «missing_value» для строковых данных или данных типа object.Добавлено в версии 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 или массивоподобный объект формы (n_features,), по умолчанию=-np.inf
-
Минимальное возможное заполненное значение. Если задан скаляр, он распространяется до формы
(n_features,). Если задан массивоподобный объект, ожидается форма(n_features,): по одному минимальному значению для каждого признака. Значение по умолчанию —-np.inf.Изменено в версии 0.23: Добавлена поддержка массивоподобных объектов.
- max_valuefloat или массивоподобный объект формы (n_features,), по умолчанию=np.inf
-
Максимальное возможное заполненное значение. Если задан скаляр, он распространяется до формы
(n_features,). Если задан массивоподобный объект, ожидается форма(n_features,): по одному максимальному значению для каждого признака. Значение по умолчанию —np.inf.Изменено в версии 0.23: Добавлена поддержка массивоподобных объектов.
- verboseint, по умолчанию=0
-
Флаг подробного вывода, управляющий отладочными сообщениями, выводимыми при выполнении функций. Чем выше значение, тем подробнее вывод. Возможные значения: 0, 1 или 2.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Начальное значение генератора псевдослучайных чисел. Случайным образом выбирает признаки оценивателя, если
n_nearest_featuresне равноNone,imputation_order, еслиrandom, а также выборку из апостериорного распределения, еслиsample_posterior=True. Для обеспечения воспроизводимости используйте целое число. См. глоссарий. - add_indicatorbool, по умолчанию=False
-
Если
True, результат преобразованияMissingIndicatorдобавляется к результату преобразования импьютера. Это позволяет предиктивному оценивателю учитывать наличие пропусков, несмотря на их заполнение. Если во время fit/train у признака нет пропущенных значений, он не появится в индикаторе пропусков, даже если пропущенные значения будут во время transform/test. - 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_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных во время fit. Определяется только тогда, когда
Xсодержит названия признаков, все из которых являются строками.Добавлено в версии 1.0.
- n_features_with_missing_int
-
Число признаков с пропущенными значениями.
-
indicator_
MissingIndicator -
Индикатор, используемый для добавления бинарных индикаторов пропущенных значений.
None, еслиadd_indicator=False. - random_state_экземпляр RandomState
-
Экземпляр RandomState, созданный на основе начального значения, генератора случайных чисел или с помощью
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)[исходный код]
-
Обучить импьютер на
Xи вернуть self.- Параметры:
-
- Xмассивоподобный объект, форма (n_samples, n_features)
-
Входные данные, где
n_samples— число образцов, аn_features— число признаков. - yИгнорируется
-
Не используется; параметр присутствует по соглашению для согласованности API.
- **fit_paramsdict
-
Параметры, передаваемые методу
fitподоценивателя через API маршрутизации метаданных.Добавлено в версии 1.5: Доступно только если установлен
sklearn.set_config(enable_metadata_routing=True). Подробнее см. в руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- selfобъект
-
Обученный оцениватель.
- fit_transform(X, y=None, **params)[исходный код]
-
Обучить импьютер на
Xи вернуть преобразованный объектX.- Параметры:
-
- Xмассивоподобный объект, форма (n_samples, n_features)
-
Входные данные, где
n_samples— число образцов, аn_features— число признаков. - yИгнорируется
-
Не используется; параметр присутствует по соглашению для согласованности API.
- **paramsdict
-
Параметры, передаваемые методу
fitподоценивателя через API маршрутизации метаданных.Добавлено в версии 1.5: Доступно только если установлен
sklearn.set_config(enable_metadata_routing=True). Подробнее см. в руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- Xtмассивоподобный объект, форма (n_samples, n_features)
-
Заполненные входные данные.
- get_feature_names_out(input_features=None)[исходный код]
-
Получить названия признаков результата преобразования.
- Параметры:
-
- input_featuresмассивоподобный объект из строк или None, по умолчанию=None
-
Входные признаки.
- Если
input_featuresравноNone, в качестве названий признаков используютсяfeature_names_in_. Еслиfeature_names_in_не определено, генерируются следующие названия входных признаков:["x0", "x1", ..., "x(n_features_in_ - 1)"]. - Если
input_features— массивоподобный объект, тоinput_featuresдолжно совпадать сfeature_names_in_, если определеноfeature_names_in_.
- Если
- Возвращает:
-
- feature_names_outndarray строковых объектов
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получить сведения о маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
Добавлено в версии 1.5.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouter, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращаются параметры этого оценивателя и содержащихся в нём подобъектов, являющихся оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- set_output(*, transform=None)[исходный код]
-
Задать контейнер для вывода.
Подробнее см. в руководстве пользователя, а пример использования API приведён в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настроить формат вывода для
transformиfit_transform.-
"default": формат вывода преобразователя по умолчанию -
"pandas": вывод в формате DataFrame -
"polars": вывод в формате Polars -
None: конфигурация преобразования не меняется
Добавлено в версии 1.4: Добавлен параметр
"polars". -
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- transform(X)[исходный код]
-
Заполнить все пропущенные значения в
X.Обратите внимание, что этот процесс является стохастическим: если
random_stateне зафиксирован, результаты повторных вызовов или перестановки входных данных будут различаться.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Входные данные для заполнения.
- Возвращает:
-
- Xtмассивоподобный объект, форма (n_samples, n_features)
-
Заполненные входные данные.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.impute.IterativeImputer.html