randomized_range_finder#

sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)[源代码]#

计算一个范围接近A范围的标准正交矩阵。

参数:
A2D阵列

The input data matrix.

sizeint

返回数组的大小。

n_iterint

用于稳定结果的功率迭代次数。

power_iteration_normalizer' Auto ',' QR ',' LU ',&#3

功率迭代是否通过逐步QR分解(最慢但最准确)进行规范化,“无”(最快但在数字上不稳定时 n_iter 很大,例如通常为5或更大),或“LU”因式分解(数字稳定,但准确性可能会略有下降)。如果出现以下情况,“自动”模式不应用规范化 n_iter <= 2,否则切换到LU。

Added in version 0.18.

random_stateint,RandomState实例或无,默认=无

伪随机数生成器的种子,用于在洗牌数据时使用,即获取随机载体来初始化算法。传递int以获得跨多个函数调用的可重复结果。看到 Glossary .

返回:
Qndarray

(大小x大小)投影矩阵,其范围很好地接近输入矩阵A的范围。

注意到

遵循算法4.3 "Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions" 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.21...,  0.88...],
       [-0.52...,  0.24...],
       [-0.82..., -0.38...]])