用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。