Spec-Zone.ru › scikit-learn

ИтеративныйЗаполнятельПропусков

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.

См. также

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 может помочь снизить вычислительную стоимость.

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

Ссылки

[1]

Stef van Buuren, Karin Groothuis-Oudshoorn (2011). «mice: Multivariate Imputation by Chained Equations in R». Журнал статистического программного обеспечения 45: 1-67.

[2]

S. F. Buck, (1960). «A Method of Estimation of Missing Values in Multivariate Data Suitable for use with an Electronic Computer». Журнал Королевского статистического общества 22(2): 302-306.

Примеры

>>> 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 MetadataRouter encapsulating 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)

Входные данные после заполнения пропусков.

Примеры из галереи

Заполнение пропущенных значений перед построением оценщика

Заполнение пропущенных значений с помощью различных вариантов IterativeImputer

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API