KNNImputer#

класс sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, веса='uniform', метрика='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 с нуллабельными целочисленными типами данных с пропущенными значениями, missing_values должно быть установлено в np.nan, так как pd.NA будут преобразованы в np.nan.

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

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

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

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

  • 'uniform' : равномерные веса. Все точки в каждом соседстве взвешиваются одинаково.

  • 'distance' : взвешивать точки обратно пропорционально их расстоянию. в этом случае ближайшие соседи точки запроса будут иметь большее влияние, чем соседи, находящиеся дальше.

  • callable : пользовательская функция, которая принимает массив расстояний и возвращает массив той же формы, содержащий веса.

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

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

  • ‘nan_euclidean’

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

copybool, по умолчанию=True

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

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

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

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

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

Ссылки

Примеры

>>> 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.

Параметры:
Xarray-like формы (n_samples, n_features)

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

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

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

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

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

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

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

Параметры:
Xarray-like формы (n_samples, n_features)

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

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

**fit_paramsdict

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

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

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

get_feature_names_out(input_features=None)[источник]#

Получить имена выходных признаков для преобразования.

Параметры:
input_featuresarray-like из str или 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_ if feature_names_in_ определен.

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

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

Имена параметров, сопоставленные с их значениями.

set_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

преобразовать(X)[источник]#

Заполняет все пропущенные значения в X.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные данные для завершения.

Возвращает:
Xarray-like формы (n_samples, n_output_features)

Импутированный набор данных. n_output_features это количество признаков, которые не всегда отсутствуют во время fit.