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 ',
功率迭代是否通过逐步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...]])