randomized_range_finder#
- sklearn.utils.extmath.randomized_range_finder(A, *, размер, n_iter, power_iteration_normalizer='auto', random_state=None)[источник]#
Вычислить ортонормированную матрицу, чье пространство приближает пространство A.
- Параметры:
- A{array-like, sparse matrix} формы (n_samples, n_features)
Входная матрица данных.
- размерint
Размер возвращаемого массива.
- n_iterint
Количество итераций по степеням, используемых для стабилизации результата.
- power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, по умолчанию=’auto’
Нормализуются ли степенные итерации с пошаговой QR-факторизацией (самый медленный, но наиболее точный), 'none' (самый быстрый, но численно неустойчивый, когда
n_iterвелико, например, обычно 5 или больше), или факторизация 'LU' (численно устойчива, но может немного терять в точности). Режим 'auto' не применяет нормализацию, еслиn_iter<= 2 и переключается на LU в противном случае.Добавлено в версии 0.18.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
Сид псевдослучайного генератора чисел для использования при перемешивании данных, т.е. получения случайных векторов для инициализации алгоритма. Передайте целое число для воспроизводимых результатов при множественных вызовах функции. См. Глоссарий.
- Возвращает:
- Qndarray формы (size, size)
Матрица проекции, диапазон которой хорошо аппроксимирует диапазон входной матрицы A.
Примечания
Следует алгоритму 4.3 из «Поиск структуры с помощью случайности: Стохастические алгоритмы построения приближенных матричных разложений» Halko и др. (2009)
Реализация рандомизированного алгоритма для анализа главных компонент A. Szlam и др. 2014
Примеры
>>> import numpy as np >>> from sklearn.utils.extmath import randomized_range_finder >>> A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> randomized_range_finder(A, size=2, n_iter=2, random_state=42) array([[-0.214, 0.887], [-0.521, 0.249], [-0.826, -0.388]])