本文简要介绍python语言中 sklearn.random_projection.SparseRandomProjection
的用法。
用法:
class sklearn.random_projection.SparseRandomProjection(n_components='auto', *, density='auto', eps=0.1, dense_output=False, random_state=None)
通过稀疏随机投影降低维度。
稀疏随机矩阵是密集随机投影矩阵的替代方案,它保证了相似的嵌入质量,同时内存效率更高并允许更快地计算投影数据。
如果我们注意到
s = 1 / density
,随机矩阵的分量来自:-sqrt(s) /sqrt(n_components) 概率为 1 /2s
0 概率为 1 - 1 /s
+sqrt(s) /sqrt(n_components) 概率为 1 /2s
在用户指南中阅读更多信息。
- n_components:int 或 ‘auto’,默认='auto'
目标投影空间的维度。
n_components 可以根据数据集中的样本数量和Johnson-Lindenstrauss lemma 给出的界限自动调整。在这种情况下,嵌入的质量由
eps
参数控制。应该注意的是,Johnson-Lindenstrauss 引理可以对所需的组件数量产生非常保守的估计,因为它不对数据集的结构做出任何假设。
- density:浮点数或‘auto’,默认='auto'
随机投影矩阵中非零分量在 (0, 1] 范围内的比率。
如果密度 = ‘auto’,则将该值设置为 Ping Li 等人推荐的最小密度:1 /sqrt(n_features)。
如果您想重现 Achlioptas, 2001 的结果,请使用密度 = 1 /3.0。
- eps:浮点数,默认=0.1
当 n_components 设置为 ‘auto’ 时,根据 Johnson-Lindenstrauss 引理控制嵌入质量的参数。该值应严格为正。
较小的值会导致目标投影空间中更好的嵌入和更多的维度(n_components)。
- dense_output:布尔,默认=假
如果为 True,请确保随机投影的输出是密集的 numpy 数组,即使输入和随机投影矩阵都是稀疏的。在实践中,如果组件的数量很少,则投影数据中零组件的数量将非常少,并且使用密集表示将更有 CPU 和内存效率。
如果为 False,如果输入是稀疏的,则投影数据使用稀疏表示。
- random_state:int、RandomState 实例或无,默认=无
控制用于在拟合时间生成投影矩阵的伪随机数生成器。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。
- n_components_:int
n_components=”auto”时计算的具体组件数量。
- components_:形状的稀疏矩阵(n_components,n_features)
用于投影的随机矩阵。稀疏矩阵将是 CSR 格式。
- density_:在 0.0 - 1.0 范围内浮点数
当密度 = “auto” 时计算出的混凝土密度。
- n_features_in_:int
拟合期间看到的特征数。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。
参数:
属性:
参考:
- 1
Ping Li、T. Hastie 和 K. W. Church,2006,“非常稀疏的随机投影”。https://web.stanford.edu/~hastie/Papers/Ping/KDD06_rp.pdf
- 2
D. Achlioptas,2001,“Database-friendly 随机投影”,https://users.soe.ucsc.edu/~optas/papers/jl.pdf
例子:
>>> import numpy as np >>> from sklearn.random_projection import SparseRandomProjection >>> rng = np.random.RandomState(42) >>> X = rng.rand(25, 3000) >>> transformer = SparseRandomProjection(random_state=rng) >>> X_new = transformer.fit_transform(X) >>> X_new.shape (25, 2759) >>> # very few components are non-zero >>> np.mean(transformer.components_ != 0) 0.0182...
相关用法
- Python sklearn SparsePCA用法及代码示例
- Python sklearn SparseCoder用法及代码示例
- Python sklearn SpectralEmbedding用法及代码示例
- Python sklearn SpectralClustering用法及代码示例
- Python sklearn SpectralBiclustering用法及代码示例
- Python sklearn SplineTransformer用法及代码示例
- Python sklearn SpectralCoclustering用法及代码示例
- Python sklearn ShrunkCovariance用法及代码示例
- Python sklearn SelfTrainingClassifier用法及代码示例
- Python sklearn SelectFromModel用法及代码示例
- Python sklearn SelectFpr用法及代码示例
- Python sklearn ShuffleSplit用法及代码示例
- Python sklearn StratifiedGroupKFold用法及代码示例
- Python sklearn Sum用法及代码示例
- Python sklearn SVR用法及代码示例
- Python sklearn SelectKBest用法及代码示例
- Python sklearn SimpleImputer用法及代码示例
- Python sklearn SGDOneClassSVM用法及代码示例
- Python sklearn StratifiedShuffleSplit用法及代码示例
- Python sklearn SVC用法及代码示例
- Python sklearn SGDRegressor用法及代码示例
- Python sklearn SequentialFeatureSelector用法及代码示例
- Python sklearn SelectPercentile用法及代码示例
- Python sklearn SkewedChi2Sampler用法及代码示例
- Python sklearn SGDClassifier用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.random_projection.SparseRandomProjection。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。