Spec-Zone.ru › scikit-learn

KNNImputer

classsklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False, keep_empty_features=False)[исходный код]

Заполнение пропущенных значений с помощью метода k ближайших соседей.

Пропущенные значения в каждом образце заполняются средним значением для n_neighbors ближайших соседей, найденных в обучающей выборке. Два образца считаются близкими, если близки значения признаков, которые не являются пропущенными ни в одном из них.

Подробнее см. в Руководстве пользователя.

Добавлено в версии 0.22.

Параметры:
missing_valuesint, float, str, np.nan или None, по умолчанию=np.nan

Заполнитель для пропущенных значений. Все вхождения missing_values будут заполнены. Для фреймов данных pandas с nullable-типами целых чисел и пропущенными значениями следует задать missing_values равным np.nan, поскольку pd.NA будет преобразовано в np.nan.

n_neighborsint, по умолчанию=5

Количество соседних образцов, используемых для заполнения.

weights{‘uniform’, ‘distance’} или вызываемый объект, по умолчанию=’uniform’

Функция весов, используемая при прогнозировании. Возможные значения:

  • ‘uniform’ : равномерные веса. Все точки в каждом окрестностном множестве имеют одинаковый вес.
  • ‘distance’ : вес точек обратно пропорционален расстоянию до них. В этом случае ближайшие соседи точки запроса оказывают большее влияние, чем более удалённые.
  • вызываемый объект : функция, определённая пользователем, которая принимает массив расстояний и возвращает массив той же формы, содержащий веса.
metric{‘nan_euclidean’} или вызываемый объект, по умолчанию=’nan_euclidean’

Метрика расстояния для поиска соседей. Возможные значения:

  • ‘nan_euclidean’
  • вызываемый объект : функция, определённая пользователем и соответствующая определению func_metric(x, y, *, missing_values=np.nan). x и y соответствуют строке (т. е. одномерному массиву) X и Y соответственно. Вызываемая функция должна возвращать скалярное значение расстояния.
copybool, по умолчанию=True

Если True, будет создана копия X. Если False, заполнение будет выполняться на месте, когда это возможно.

add_indicatorbool, по умолчанию=False

Если True, преобразование MissingIndicator будет добавлено к результату преобразования заполнителя. Это позволяет алгоритму прогнозирования учитывать факт наличия пропусков, несмотря на их заполнение. Если во время fit/train у признака нет пропущенных значений, он не появится среди индикаторов пропусков, даже если пропущенные значения есть во время transform/test.

keep_empty_featuresbool, по умолчанию=False

Если True, признаки, состоящие исключительно из пропущенных значений на момент вызова fit, будут возвращены в результатах при вызове transform. Заполненное значение всегда равно 0.

Добавлено в версии 1.2.

Атрибуты:
indicator_MissingIndicator

Индикатор для добавления бинарных индикаторов пропущенных значений. None, если add_indicator имеет значение False.

n_features_in_int

Количество признаков, обнаруженных во время fit.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, обнаруженных во время fit. Определяется только в том случае, если X содержит названия признаков, представленные строками.

Добавлено в версии 1.0.

См. также

SimpleImputer

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

IterativeImputer

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

Литература

  • Olga Troyanskaya, Michael Cantor, Gavin Sherlock, Pat Brown, Trevor Hastie, Robert Tibshirani, David Botstein и Russ B. Altman, методы оценки пропущенных значений для ДНК-микроматриц, BIOINFORMATICS, том 17, № 6, 2001, страницы 520–525.

Примеры

>>> import numpy as np
>>> from sklearn.impute import KNNImputer
>>> X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
>>> imputer = KNNImputer(n_neighbors=2)
>>> imputer.fit_transform(X)
array([[1. , 2. , 4. ],
       [3. , 4. , 3. ],
       [5.5, 6. , 5. ],
       [8. , 8. , 7. ]])

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

fit(X, y=None)[исходный код]

Обучить заполнитель на X.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Входные данные, где n_samples — количество образцов, а n_features — количество признаков.

yИгнорируется

Не используется; присутствует здесь для соответствия общепринятому соглашению API.

Возвращает:
selfобъект

Обученный экземпляр класса KNNImputer.

fit_transform(X, y=None, **fit_params)[исходный код]

Обучить на данных, а затем преобразовать их.

Обучает преобразователь на X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Входные образцы.

yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для преобразований без учителя).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте их, только если оценщик принимает дополнительные параметры в методе fit.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

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()[исходный код]

Получить маршрутизацию метаданных этого объекта.

Ознакомьтесь с разделом Руководство пользователя, чтобы узнать, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий информацию о маршрутизации.

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.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Входные данные для заполнения.

Возвращает:
Xмассивоподобный объект формы (n_samples, n_output_features)

Набор данных с заполненными пропусками. n_output_features — количество признаков, которые не всегда являются полностью пропущенными во время fit.

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

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

Основные нововведения scikit-learn 0.22

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.impute.KNNImputer.html

Spec-Zone.ru

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