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.
-
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)[исходный код]
-
Обучить заполнитель на 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.
Примеры в галерее
© 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