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


Python dask_ml.decomposition.PCA用法及代碼示例

用法:

class dask_ml.decomposition.PCA(n_components=None, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power=0, random_state=None)

主成分分析(PCA)

使用數據的奇異值分解將其投影到較低維空間的線性降維。

它使用 Benson 等人的 “tsqr” 算法。人。 (2013)。有關更多信息,請參閱引用。

在用戶指南中閱讀更多信息。

參數

n_components整數,或無

要保留的組件數。如果未設置 n_components 則保留所有組件:

n_components == min(n_samples, n_features)

注意

與scikit-learn不同,目前不支持(0, 1)之間的n_components='mle'n_components

copy布爾型(默認為真)

忽略

whiten布爾值,可選(默認為 False)

當為 True(默認為 False)時,components_ 向量乘以 n_samples 的平方根,然後除以奇異值,以確保輸出與單位 component-wise 方差不相關。

白化將從轉換後的信號中刪除一些信息(分量的相對方差尺度),但有時可以通過使下遊估計器的數據尊重一些hard-wired假設來提高下遊估計器的預測準確性。

svd_solver字符串 {‘auto’, ‘full’, ‘tsqr’, ‘randomized’}
汽車:

求解器由基於 X.shapen_components 的默認策略選擇:如果輸入數據大於 500x500 並且要提取的組件數低於數據最小維度的 80%,則效率更高‘randomized’ 方法已啟用。否則,將計算精確的完整 SVD,然後可以選擇截斷。

滿的:

運行精確的完整 SVD 並通過後處理選擇組件

隨機:

使用 da.linalg.svd_compressed 運行隨機 SVD。

tol浮點數 >= 0,可選(默認 .0)

忽略

iterated_powerint >= 0,默認為 0

由svd_solver == ‘randomized’ 計算的冪方法的迭代次數。

random_stateint,RandomState 實例或無,可選(默認無)

如果是int,random_state是隨機數生成器使用的種子;如果是RandomState實例,random_state是隨機數生成器;如果沒有,隨機數生成器是 da.random 使用的 RandomState 實例。當 svd_solver == ‘randomized’ 時使用。

屬性

components_數組,形狀(n_components,n_features)

特征空間中的主軸,表示數據中最大方差的方向。組件按 explained_variance_ 排序。

explained_variance_數組,形狀(n_components,)

每個選定組件解釋的方差量。

等於 X 的協方差矩陣的 n_components 個最大特征值。

explained_variance_ratio_數組,形狀(n_components,)

每個選定組件解釋的方差百分比。

如果未設置n_components,則存儲所有分量並且比率之和等於 1.0。

singular_values_數組,形狀(n_components,)

對應於每個選定組件的奇異值。奇異值等於 lower-dimensional 空間中 n_components 變量的 2 範數。

mean_數組,形狀(n_features,)

Per-feature 經驗平均值,根據訓練集估計。

等於 X.mean(axis=0)

n_components_int

組件的估計數量。當 n_components 設置為 ‘mle’ 或 0 到 1 之間的數字(svd_solver == ‘full’)時,此數字是根據輸入數據估算的。否則,它等於參數 n_components,或者如果 n_components 為 None,則等於 n_features 和 n_samples 的較小值。

noise_variance_浮點數

根據 Tipping 和 Bishop 1999 的概率 PCA 模型估計的噪聲協方差。參見 C. Bishop 的“模式識別和機器學習”,第 12.2.1 頁。 574 或 http://www.miketipping.com/papers/met-mppca.pdf 。需要計算估計的數據協方差和分數樣本。

等於 X 的協方差矩陣的 (min(n_features, n_samples) - n_components) 個最小特征值的平均值。

注意

與scikit-learn 的區別:

  • svd_solver :‘randomized’ 使用 dask.linalg.svd_compressed ‘full’ 使用 dask.linalg.svd ,‘arpack’ 無效。
  • iterated_power :默認為 0 ,默認為 dask.linalg.svd_compressed
  • n_components : n_components='mle' 是不允許的。不允許使用介於 0 和 1 之間的小數 n_components

參考

MapReduce 架構中tall-and-skinny 矩陣的直接 QR 分解。 A. Benson、D. Gleich 和 J. Demmel。 IEEE 大數據國際會議,2013 年。http://arxiv.org/abs/1301.1071

例子

>>> import numpy as np
>>> import dask.array as da
>>> from dask_ml.decomposition import PCA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> dX = da.from_array(X, chunks=X.shape)
>>> pca = PCA(n_components=2)
>>> pca.fit(dX)
PCA(copy=True, iterated_power='auto', n_components=2, random_state=None,
  svd_solver='auto', tol=0.0, whiten=False)
>>> print(pca.explained_variance_ratio_)  
[ 0.99244...  0.00755...]
>>> print(pca.singular_values_)  
[ 6.30061...  0.54980...]
>>> pca = PCA(n_components=2, svd_solver='full')
>>> pca.fit(dX)                 
PCA(copy=True, iterated_power='auto', n_components=2, random_state=None,
  svd_solver='full', tol=0.0, whiten=False)
>>> print(pca.explained_variance_ratio_)  
[ 0.99244...  0.00755...]
>>> print(pca.singular_values_)  
[ 6.30061...  0.54980...]

相關用法


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