用法:
__init__(n_components=2, algorithm='tsqr', n_iter=5, random_state=None, tol=0.0, compute=True)
使用截斷的 SVD(又名 LSA)進行降維。
該轉換器通過截斷奇異值分解 (SVD) 執行線性降維。與 PCA 不同,此估計器在計算奇異值分解之前不會將數據居中。
- n_components:整數,默認 = 2
輸出數據的所需維度。必須小於或等於特征數。默認值對於可視化很有用。
- algorithm:{‘tsqr’, ‘randomized’}
要使用的 SVD 求解器。兩者都在內部使用
tsqr
(用於“tall-and-skinny QR”)算法。 ‘randomized’ 使用更快但不精確的近似算法。有關更多信息,請參閱引用。- n_iter:int,可選(默認 0)
冪迭代次數,當奇異值衰減緩慢時很有用。隨著 n_power_iter 的增加,誤差呈 index 下降。在實踐中,設置 n_power_iter <= 4。
- random_state:int,RandomState 實例或無,可選
如果是int,random_state是隨機數生成器使用的種子;如果是RandomState實例,random_state是隨機數生成器;如果沒有,隨機數生成器是
np.random
使用的 RandomState 實例。- tol:浮點數,可選
忽略。
- compute:bool
是否應立即計算 SVD 結果,默認為 True。
- components_:數組,形狀(n_components,n_features)
- explained_variance_:數組,形狀(n_components,)
通過投影變換到每個分量的訓練樣本的方差。
- explained_variance_ratio_:數組,形狀(n_components,)
每個選定組件解釋的方差百分比。
- singular_values_:數組,形狀(n_components,)
對應於每個選定組件的奇異值。奇異值等於 lower-dimensional 空間中
n_components
變量的 2 範數。
參數:
屬性:
注意:
SVD 遇到一個稱為“sign indeterminacy” 的問題,這意味著
components_
的符號和變換的輸出取決於算法和隨機狀態。要解決此問題,請將此類的實例與數據匹配一次,然後保留該實例以進行轉換。警告
該實現目前不支持稀疏矩陣。
參考:
MapReduce 架構中tall-and-skinny 矩陣的直接 QR 分解。 A. Benson、D. Gleich 和 J. Demmel。 IEEE 大數據國際會議,2013 年。http://arxiv.org/abs/1301.1071
例子:
>>> from dask_ml.decomposition import TruncatedSVD >>> import dask.array as da >>> X = da.random.normal(size=(1000, 20), chunks=(100, 20)) >>> svd = TruncatedSVD(n_components=5, n_iter=3, random_state=42) >>> svd.fit(X) TruncatedSVD(algorithm='tsqr', n_components=5, n_iter=3, random_state=42, tol=0.0)
>>> print(svd.explained_variance_ratio_) [0.06386323 0.06176776 0.05901293 0.0576399 0.05726607] >>> print(svd.explained_variance_ratio_.sum()) 0.299... >>> print(svd.singular_values_) array([35.92469517, 35.32922121, 34.53368856, 34.138..., 34.013...])
請注意,
transform
返回一個dask.Array
。>>> svd.transform(X) dask.array<sum-agg, shape=(1000, 5), dtype=float64, chunksize=(100, 5)>
相關用法
- Python dask_ml.decomposition.PCA用法及代碼示例
- Python dask_ml.datasets.make_blobs用法及代碼示例
- Python dask_ml.datasets.make_counts用法及代碼示例
- Python dask_ml.wrappers.ParallelPostFit用法及代碼示例
- Python dask_ml.feature_extraction.text.CountVectorizer用法及代碼示例
- Python dask_ml.preprocessing.MinMaxScaler用法及代碼示例
- Python dask_ml.preprocessing.Categorizer用法及代碼示例
- Python dask_ml.linear_model.LinearRegression用法及代碼示例
- Python dask_ml.wrappers.Incremental用法及代碼示例
- Python dask_ml.metrics.mean_squared_log_error用法及代碼示例
- Python dask_ml.model_selection.GridSearchCV用法及代碼示例
- Python dask_ml.preprocessing.OrdinalEncoder用法及代碼示例
- Python dask_ml.feature_extraction.text.FeatureHasher用法及代碼示例
- Python dask_ml.preprocessing.LabelEncoder用法及代碼示例
- Python dask_ml.ensemble.BlockwiseVotingClassifier用法及代碼示例
- Python dask_ml.model_selection.train_test_split用法及代碼示例
- Python dask_ml.feature_extraction.text.HashingVectorizer用法及代碼示例
- Python dask_ml.preprocessing.PolynomialFeatures用法及代碼示例
- Python dask_ml.linear_model.LogisticRegression用法及代碼示例
- Python dask_ml.xgboost.train用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask_ml.decomposition.TruncatedSVD.__init__。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。