Spec-Zone.ru › scikit-learn

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

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

Примеры из галереи

Обучение на многообразии для рукописных цифр: локальное линейное встраивание, Isomap…

Сравнение метода ближайших соседей с анализом компонентов окрестности и без него

Снижение размерности с помощью анализа компонентов окрестности

Иллюстрация анализа компонентов окрестности

© 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

Spec-Zone.ru

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