随机范围查找器#
- sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)[source]#
- 计算一个正交矩阵,其值域近似于 A 的值域。 - 参数:
- **A**二维数组
- 输入数据矩阵。 
- sizeint
- 返回数组的大小。 
- n_iterint
- 用于稳定结果的幂迭代次数。 
- power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, default=’auto’
- 幂迭代是否通过逐步QR分解(最慢但最准确)、‘none’(最快,但在 - n_iter较大时,例如通常为5或更大时,数值不稳定)或‘LU’分解(数值稳定,但在精度上可能略有损失)进行归一化处理。 ‘auto’模式在- n_iter<= 2时不进行归一化,否则切换到LU。- 0.18版本新增。 
- random_stateint, RandomState 实例或 None, default=None
- 在洗牌数据时使用的伪随机数生成器的种子,即获取用于初始化算法的随机向量。传递一个整数以在多次函数调用中获得可重复的结果。参见词汇表。 
 
- 返回:
- Qndarray
- 一个(size x size)投影矩阵,其范围很好地逼近输入矩阵A的范围。 
 
 - 备注 - 遵循Halko等人(2009)的“利用随机性寻找结构:构建近似矩阵分解的随机算法”中的算法4.3 - 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...]]) 
