KNNImputer
- classsklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False, keep_empty_features=False)[source]
-
Заполнение пропущенных значений с использованием 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. Это позволяет предиктивному оценщику учитывать пропуски, несмотря на заполнение. Если у признака нет пропущенных значений во время подгонки/обучения, признак не появится в индикаторе пропущенных значений, даже если в процессе преобразования/тестирования есть пропущенные значения. - keep_empty_featuresbool, по умолчанию=False
-
Если True, признаки, состоящие исключительно из пропущенных значений, когда вызывается
fit, возвращаются в результатах при вызовеtransform. Заполненное значение всегда0.Добавлен в версии 1.2.
- Атрибуты:
-
-
indicator_
MissingIndicator -
Индикатор, используемый для добавления бинарных индикаторов для пропущенных значений.
Noneесли add_indicator равно False. - n_features_in_int
-
Количество признаков, увиденных во время подгонки.
Добавлен в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, увиденные во время подгонки. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлен в версии 1.0.
-
indicator_
См. также
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)[source]
-
Обучить импутер на X.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Входные данные, где
n_samples— количество образцов, аn_features— количество признаков. - yИгнорируется
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
-
- selfобъект
-
Обученная
KNNImputerэкземпляр класса.
- fit_transform(X, y=None, **fit_params)[source]
-
Обучить данные, а затем преобразовать их.
Обучает преобразователь на
Xиyс необязательными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Входящие образцы.
- yarray-like формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None
-
Значения целевой переменной (None для неконтролируемых преобразований).
- **fit_paramsdict
-
Дополнительные параметры подгонки.
- Возвращает:
-
- X_newndarray формы (n_samples, n_features_new)
-
Преобразованный массив.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
- Параметры:
-
- input_featuresarray-like из str или None, по умолчанию=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 из str объектов
-
Преобразованные имена признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя для получения информации о работе механизма маршрутизации.
- Возвращает:
-
- маршрутизацияMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернёт параметры этого оценщика и содержащихся в нём дочерних объектов, являющихся оценщиками.
- Возвращает:
-
- параметрыdict
-
Имена параметров, сопоставленные со значениями.
- 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.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Входные данные для заполнения.
- Возвращает:
-
- Xarray-like формы (n_samples, n_output_features)
-
Заполненный набор данных.
n_output_features— это количество признаков, которые не всегда отсутствуют во времяfit.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.impute.KNNImputer.html