本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。