NeighborhoodComponentsAnalysis
- classsklearn.neighbors.NeighborhoodComponentsAnalysis(n_components=None, *, init='auto', warm_start=False, max_iter=50, tol=1e-05, callback=None, verbose=0, random_state=None)[исходный код]
-
Анализ компонентов окрестности.
Анализ компонентов окрестности (NCA) — это алгоритм машинного обучения для метрического обучения. Он обучает линейное преобразование с учителем, чтобы повысить точность классификации по правилу стохастических ближайших соседей в преобразованном пространстве.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- n_componentsint, default=None
-
Предпочтительная размерность проецируемого пространства. Если значение равно None, параметр будет установлен в
n_features. - init{‘auto’, ‘pca’, ‘lda’, ‘identity’, ‘random’} or ndarray of shape (n_features_a, n_features_b), default=’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, default=False
-
Если
Trueи ранее уже вызывалсяfit, результат предыдущего вызоваfitиспользуется в качестве начального линейного преобразования (n_componentsиinitигнорируются). - max_iterint, default=50
-
Максимальное число итераций оптимизации.
- tolfloat, default=1e-5
-
Допуск сходимости для оптимизации.
- callbackcallable, default=None
-
Если значение не равно
None, эта функция вызывается после каждой итерации оптимизатора и получает в качестве аргументов текущее решение (развернутую матрицу преобразования) и число итераций. Это может быть полезно, если требуется изучить или сохранить преобразование, найденное после каждой итерации. - verboseint, default=0
-
Если значение равно 0, сообщения о ходе выполнения не выводятся. Если значение равно 1, сообщения о ходе выполнения выводятся в stdout. Если значение > 1, сообщения о ходе выполнения выводятся, а параметру
dispфункцииscipy.optimize.minimizeприсваивается значениеverbose - 2. - random_stateint or numpy.RandomState, default=None
-
Объект генератора псевдослучайных чисел или начальное значение для него, если задано целое число. Если
init='random',random_stateиспользуется для инициализации случайного преобразования. Еслиinit='pca',random_stateпередается в PCA в качестве аргумента при инициализации преобразования. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- Атрибуты:
-
- components_ndarray of shape (n_components, n_features)
-
Линейное преобразование, полученное в ходе обучения.
- n_features_in_int
-
Число признаков, обнаруженных во время вызова fit.
Добавлено в версии 0.24.
- n_iter_int
-
Число итераций, выполненных оптимизатором.
- random_state_numpy.RandomState
-
Объект генератора псевдослучайных чисел, использованный при инициализации.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, обнаруженных во время вызова fit. Определен только в том случае, если
Xсодержит имена признаков, представленные строками.Добавлено в версии 1.0.
См. также
sklearn.discriminant_analysis.LinearDiscriminantAnalysis-
Линейный дискриминантный анализ.
sklearn.decomposition.PCA-
Анализ главных компонент (PCA).
Список литературы
[1]Дж. Голдбергер, Г. Хинтон, С. Роуайс, Р. Салахутдинов. «Анализ компонентов окрестности». Достижения в области систем обработки нейронной информации. 17, 513–520, 2005. https://www.cs.toronto.edu/~rsalakhu/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)[исходный код]
-
Обучить модель на заданных обучающих данных.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Обучающие образцы.
- yarray-like of shape (n_samples,)
-
Соответствующие обучающие метки.
- Возвращает:
-
- selfobject
-
Обученный оцениватель.
- fit_transform(X, y=None, **fit_params)[исходный код]
-
Обучить преобразователь на данных и затем преобразовать их.
Обучает преобразователь на
Xиyс дополнительными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные образцы.
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
-
Целевые значения (None для преобразований без учителя).
- **fit_paramsdict
-
Дополнительные параметры обучения. Передавайте их только в том случае, если оцениватель принимает дополнительные параметры в методе
fit.
- Возвращает:
-
- X_newndarray array of shape (n_samples, n_features_new)
-
Преобразованный массив.
- get_feature_names_out(input_features=None)[исходный код]
-
Получить имена выходных признаков для преобразования.
К именам выходных признаков будет добавлено имя класса в нижнем регистре. Например, если преобразователь возвращает 3 признака, их имена будут следующими:
["class_name0", "class_name1", "class_name2"].- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Используется только для проверки имен признаков по именам, обнаруженным в
fit.
- Возвращает:
-
- feature_names_outndarray of str objects
-
Имена преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получить сведения о маршрутизации метаданных этого объекта.
Подробнее о работе механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, default=True
-
Если значение равно True, будут возвращены параметры этого оценивателя и содержащихся в нем подобъектов, являющихся оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- set_output(*, transform=None)[исходный код]
-
Задать контейнер для выходных данных.
Подробнее см. в руководстве пользователя, а пример использования API см. в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, default=None
-
Настроить формат выходных данных для
transformиfit_transform.-
"default": формат выходных данных преобразователя по умолчанию -
"pandas": выходные данные в формате DataFrame -
"polars": выходные данные в формате Polars -
None: конфигурация преобразования остается без изменений
Добавлено в версии 1.4: добавлен параметр
"polars". -
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
- transform(X)[исходный код]
-
Применить обученное преобразование к заданным данным.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Образцы данных.
- Возвращает:
-
- X_embedded: ndarray of shape (n_samples, n_components)
-
Преобразованные образцы данных.
- Вызывает исключение:
-
- NotFittedError
-
Если ранее не вызывался метод
fit.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.neighbors.NeighborhoodComponentsAnalysis.html