Анализ компонент окрестностей
- классsklearn.neighbors.NeighborhoodComponentsAnalysis(n_components=None, *, init='auto', warm_start=False, max_iter=50, tol=1e-05, callback=None, verbose=0, random_state=None)[source]
-
Анализ компонентов окрестностей.
Анализ компонентов окрестностей (NCA) — алгоритм машинного обучения для метрического обучения. Он обучает линейное преобразование в контролируемом режиме, чтобы повысить точность классификации правила стохастических ближайших соседей в преобразованном пространстве.
Подробнее читайте в Руководстве пользователя.
- Параметры:
-
- n_componentsint, по умолчанию=None
-
Предпочтительная размерность проецируемого пространства. Если None, она будет установлена в
n_features. - init{‘auto’, ‘pca’, ‘lda’, ‘identity’, ‘random’} или ndarray формы (n_features_a, n_features_b), по умолчанию=’auto’
-
Инициализация линейного преобразования. Возможные варианты —
'auto','pca','lda','identity','random', и массив NumPy формы(n_features_a, n_features_b).-
'auto'-
В зависимости от
n_components, выбирается наиболее разумная инициализация. Еслиn_components <= min(n_features, n_classes - 1), используется'lda', так как он использует информацию о метках. В противном случае, еслиn_components < min(n_features, n_samples), используется'pca', так как он проецирует данные в осмысленных направлениях (направления с большей дисперсией). В противном случае используется'identity'.
-
'lda'-
min(n_components, n_classes)наиболее дискриминативные компоненты входных данных, переданных вfit, будут использованы для инициализации преобразования. (Еслиn_components > n_classes, остальные компоненты будут нулевыми.) (См.LinearDiscriminantAnalysis)
-
'identity'-
Если
n_componentsстрого меньше размерности входных данных, переданных вfit, то единичная матрица будет усечена до первыхn_componentsстрок.
-
'random'-
Начальное преобразование будет случайным массивом формы
(n_components, n_features). Каждое значение выбирается из стандартного нормального распределения.
-
- массив NumPy
-
n_features_bдолжна соответствовать размерности входных данных, переданных вfit, а n_features_a должна быть меньше или равна ей. Еслиn_componentsнеNone,n_features_aдолжна соответствовать ей.
-
- warm_startbool, по умолчанию=False
-
Если
Trueиfitбыл вызван ранее, то решение предыдущего вызоваfitиспользуется в качестве начального линейного преобразования (n_componentsиinitбудут проигнорированы). - max_iterint, по умолчанию=50
-
Максимальное количество итераций в оптимизации.
- tolfloat, по умолчанию=1e-5
-
Пороговое значение сходимости для оптимизации.
- callbackвызываемая функция, по умолчанию=None
-
Если не
None, эта функция вызывается после каждой итерации оптимизатора, принимая в качестве аргументов текущее решение (уплощенная матрица преобразования) и количество итераций. Это может быть полезно, если необходимо изучить или сохранить найденное преобразование после каждой итерации. - verboseint, по умолчанию=0
-
Если 0, сообщения о прогрессе не будут выводиться. Если 1, сообщения о прогрессе будут выводиться в стандартный вывод. Если > 1, сообщения о прогрессе будут выводиться, а параметр
dispвscipy.optimize.minimizeбудет установлен вverbose - 2. - random_stateint или numpy.RandomState, по умолчанию=None
-
Объект генератора псевдослучайных чисел или его семя, если это целое число. Если
init='random',random_stateиспользуется для инициализации случайного преобразования. Еслиinit='pca',random_stateпередаётся в качестве аргумента PCA при инициализации преобразования. Передайте целое число для воспроизводимых результатов при многократном вызове функции. См. Словарь.
- Атрибуты:
-
- components_массив формы (n_components, n_features)
-
Линейное преобразование, полученное во время подгонки.
- n_features_in_int
-
Количество признаков, увиденных во время подгонки.
Добавлена в версии 0.24.
- n_iter_int
-
Подсчитывает количество итераций, выполненных оптимизатором.
- random_state_numpy.RandomState
-
Объект генератора псевдослучайных чисел, используемый во время инициализации.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденные во время подгонки. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлена в версии 1.0.
См. также
sklearn.discriminant_analysis.LinearDiscriminantAnalysis-
Линейный дискриминантный анализ.
sklearn.decomposition.PCA-
Главной компонентный анализ (PCA).
Ссылки
[1]Дж. Голдбергер, Г. Хинтон, С. Роуис, Р. Салахутдинов. «Анализ компонентов окрестностей». Сборник работ по обработке информации в нейронных сетях. 17, 513-520, 2005. http://www.cs.nyu.edu/~roweis/papers/ncanips.pdf
[2]Статья Википедии об анализе компонентов окрестностей https://en.wikipedia.org/wiki/Neighbourhood_components_analysis
Примеры
>>> from sklearn.neighbors import NeighborhoodComponentsAnalysis >>> from sklearn.neighbors import KNeighborsClassifier >>> from sklearn.datasets import load_iris >>> from sklearn.model_selection import train_test_split >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, ... stratify=y, test_size=0.7, random_state=42) >>> nca = NeighborhoodComponentsAnalysis(random_state=42) >>> nca.fit(X_train, y_train) NeighborhoodComponentsAnalysis(...) >>> knn = KNeighborsClassifier(n_neighbors=3) >>> knn.fit(X_train, y_train) KNeighborsClassifier(...) >>> print(knn.score(X_test, y_test)) 0.933333... >>> knn.fit(nca.transform(X_train), y_train) KNeighborsClassifier(...) >>> print(knn.score(nca.transform(X_test), y_test)) 0.961904...
- fit(X, y)[source]
-
Обучает модель в соответствии с предоставленными обучающими данными.
- Параметры:
-
- Xмассив формы (n_samples, n_features)
-
Обучающие примеры.
- yмассив формы (n_samples,)
-
Соответствующие метки обучения.
- Возвращает:
-
- selfобъект
-
Обученная модель.
- fit_transform(X, y=None, **fit_params)[source]
-
Применить обучение к данным, а затем преобразовать их.
Обучает преобразователь к
Xиyс необязательными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xмассив-подобный, форма (n_samples, n_features)
-
Входные примеры.
- yмассив-подобный, форма (n_samples,) или (n_samples, n_outputs), по умолчанию=None
-
Целевые значения (None для безконтрольных преобразований).
- **fit_paramsсловарь
-
Дополнительные параметры обучения.
- Возвращаемые значения:
-
- X_newмассив ndarray, форма (n_samples, n_features_new)
-
Преобразованный массив.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
Имена выходных признаков будут иметь префикс в нижнем регистре имени класса. Например, если преобразователь выводит 3 признака, то имена выходных признаков:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresмассив-подобный из строк или None, по умолчанию=None
-
Используется только для проверки имен признаков с именами, увиденными в
fit.
- Возвращаемые значения:
-
- feature_names_outмассив из строковых объектов
-
Имена преобразованных признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
- Возвращаемые значения:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернёт параметры этого оценщика и содержащихся в нём дочерних объектов, которые являются оценщиками.
- Возвращаемые значения:
-
- paramsсловарь
-
Имена параметров, сопоставленные со значениями.
- 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>, чтобы можно было обновить каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращаемые значения:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Применить выученное преобразование к заданным данным.
- Параметры:
-
- Xмассив-подобный, форма (n_samples, n_features)
-
Образцы данных.
- Возвращаемые значения:
-
- X_embedded: массив ndarray, форма (n_samples, n_components)
-
Преобразованные образцы данных.
- Исключения:
-
- NotFittedError
-
Если
fitне был вызван ранее.
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.neighbors.NeighborhoodComponentsAnalysis.html