用法:
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.shape
和n_components
的默認策略選擇:如果輸入數據大於 500x500 並且要提取的組件數低於數據最小維度的 80%,則效率更高‘randomized’ 方法已啟用。否則,將計算精確的完整 SVD,然後可以選擇截斷。- 滿的:
運行精確的完整 SVD 並通過後處理選擇組件
- 隨機:
使用
da.linalg.svd_compressed
運行隨機 SVD。
- tol:浮點數 >= 0,可選(默認 .0)
忽略
- iterated_power:int >= 0,默認為 0
由svd_solver == ‘randomized’ 計算的冪方法的迭代次數。
- random_state:int,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...]
相關用法
- Python dask_ml.decomposition.TruncatedSVD.__init__用法及代碼示例
- 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.PCA。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。