当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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