Spec-Zone.ru › scikit-learn

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. Для строковых типов данных или типов object fill_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.

См. также

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: многомерное заполнение с помощью цепных уравнений в R». Journal of Statistical Software 45: 1-67.

[2]

S. F. Buck (1960). «Метод оценки пропущенных значений в многомерных данных, пригодный для использования на электронном компьютере». Journal of the Royal Statistical Society 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)[исходный код]

Обучить импьютер на 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)

Заполненные входные данные.

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

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

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

© 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

Spec-Zone.ru

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