當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask_ml.decomposition.TruncatedSVD.__init__用法及代碼示例

用法:

__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_iterint,可選(默認 0)

冪迭代次數,當奇異值衰減緩慢時很有用。隨著 n_power_iter 的增加,誤差呈 index 下降。在實踐中,設置 n_power_iter <= 4。

random_stateint,RandomState 實例或無,可選

如果是int,random_state是隨機數生成器使用的種子;如果是RandomState實例,random_state是隨機數生成器;如果沒有,隨機數生成器是 np.random 使用的 RandomState 實例。

tol浮點數,可選

忽略。

computebool

是否應立即計算 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)>

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask_ml.decomposition.TruncatedSVD.__init__。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。