locally_linear_embedding#
- sklearn.manifold.locally_linear_embedding(X, *, n_neighbors, n_components, reg=0.001, eigen_solver='auto', tol=1e-06, max_iter=100, метод='standard', hessian_tol=0.0001, modified_tol=1e-12, random_state=None, n_jobs=None)[источник]#
Выполнить анализ локально линейного вложения на данных.
Подробнее в Руководство пользователя.
- Параметры:
- X{array-like, NearestNeighbors}
Данные выборки, форма = (n_образцов, n_признаков), в виде numpy массива или объекта NearestNeighbors.
- n_neighborsint
Количество соседей для рассмотрения каждой точки.
- n_componentsint
Количество координат для многообразия.
- regfloat, по умолчанию=1e-3
Константа регуляризации, умножает след локальной ковариационной матрицы расстояний.
- eigen_solver{‘auto’, ‘arpack’, ‘dense’}, по умолчанию=’auto’
auto: алгоритм попытается выбрать лучший метод для входных данных
- arpackиспользовать итерацию Арнольди в режиме сдвига-инверсии.
Для этого метода M может быть плотной матрицей, разреженной матрицей или общим линейным оператором. Предупреждение: ARPACK может быть нестабильным для некоторых задач. Лучше попробовать несколько случайных начальных значений, чтобы проверить результаты.
- denseиспользовать стандартные операции с плотными матрицами для собственных значений
разложение. Для этого метода M должен быть массивом или матричным типом. Этот метод следует избегать для больших задач.
- tolfloat, по умолчанию=1e-6
Допуск для метода 'arpack' Не используется, если eigen_solver=='dense'.
- max_iterint, по умолчанию=100
Максимальное количество итераций для решателя arpack.
- метод{'standard', 'hessian', 'modified', 'ltsa'}, по умолчанию='standard'
- стандартныйиспользовать стандартный алгоритм локально линейного вложения.
см. ссылку [1]
- гессианиспользовать метод собственных отображений Гессиана. Этот метод требует
n_neighbors > n_components * (1 + (n_components + 1) / 2. см. ссылку [2]
- измененоиспользовать модифицированный алгоритм локально линейного вложения.
см. ссылку [3]
- ltsaиспользуйте алгоритм выравнивания локального касательного пространства
см. ссылку [4]
- hessian_tolfloat, по умолчанию=1e-4
Допуск для метода отображения собственных значений гессиана. Используется только если method == ‘hessian’.
- modified_tolfloat, default=1e-12
Допуск для модифицированного метода LLE. Используется только если method == 'modified'.
- random_stateint, экземпляр RandomState, по умолчанию=None
Определяет генератор случайных чисел, когда
solver== 'arpack'. Передайте int для воспроизводимых результатов при множественных вызовах функции. См. Глоссарий.- n_jobsint или None, по умолчанию=None
Количество параллельных задач для поиска соседей.
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.
- Возвращает:
- Yndarray формы (n_samples, n_components)
Векторы вложения.
- squared_errorfloat
Ошибка реконструкции для векторов вложения. Эквивалентно
norm(Y - W Y, 'fro')**2, где W — веса реконструкции.
Ссылки
[1]Roweis, S. & Saul, L. Nonlinear dimensionality reduction by locally linear embedding. Science 290:2323 (2000).
[2]Донохо, Д. и Граймс, К. Собственные карты Гессиана: методы локально линейного вложения для данных высокой размерности. Proc Natl Acad Sci U S A. 100:5591 (2003).
[4]Чжан, З. и Чжа, Х. Главные многообразия и нелинейное снижение размерности через выравнивание касательных пространств. Журнал Шанхайского университета. 8:406 (2004)
Примеры
>>> from sklearn.datasets import load_digits >>> from sklearn.manifold import locally_linear_embedding >>> X, _ = load_digits(return_X_y=True) >>> X.shape (1797, 64) >>> embedding, _ = locally_linear_embedding(X[:100],n_neighbors=5, n_components=2) >>> embedding.shape (100, 2)