Spec-Zone.ru › scikit-learn

Анализ компонент окрестностей

класс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'.

  • 'pca'

    n_components главные компоненты входных данных, переданных в fit, будут использованы для инициализации преобразования. (См. PCA)

  • '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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API