dask_ml.decomposition.IncrementalPCA
dask_ml.decomposition
.IncrementalPCA¶
- class dask_ml.decomposition.IncrementalPCA(n_components=None, whiten=False, copy=True, batch_size=None, svd_solver='auto', iterated_power=0, random_state=None)¶
增量主成分分析 (IPCA)。使用数据的奇异值分解进行线性降维,只保留最重要的奇异向量,将数据投影到更低维度空间。输入数据在应用 SVD 之前对每个特征进行中心化,但不进行缩放。根据输入数据的大小,此算法比 PCA 的内存效率要高得多,并且支持稀疏输入。此算法具有常数内存复杂度,大约是
batch_size * n_features
,支持使用 np.memmap 文件,而无需将整个文件加载到内存中。对于稀疏矩阵,输入数据按批次转换为密集格式(为了能够减去均值),这避免了一次性存储整个密集矩阵。每次 SVD 的计算开销是O(batch_size * n_features ** 2)
,但内存中同时只保留 2 * batch_size 个样本。需要进行n_samples / batch_size
次 SVD 计算来获取主成分,而 PCA 需要进行 1 次大型 SVD,复杂度为O(n_samples * n_features ** 2)
。详细信息请参阅用户指南。 .. 版本新增:: 0.16- 参数
- n_componentsint 或 None, (默认值=None)
要保留的成分数量。如果
n_components `` 为 ``None
,则n_components
设置为min(n_samples, n_features)
。- whitenbool,可选
当为 True 时(默认为 False),
components_
向量将除以n_samples
乘以components_
,以确保输出不相关且成分方差为单位方差。白化会移除变换后信号的一些信息(成分的相对方差尺度),但有时可以通过使数据符合某些硬编码假设来提高下游估计器的预测准确性。- copybool, (默认值=True)
如果为 False,X 将被覆盖。
copy=False
可用于节省内存,但对一般使用不安全。- batch_sizeint 或 None, (默认值=None)
每批次使用的样本数量。仅在调用
fit
时使用。如果batch_size
为None
,则batch_size
从数据中推断,并设置为5 * n_features
,以在近似精度和内存消耗之间取得平衡。- svd_solver字符串 {'auto', 'full', 'tsqr', 'randomized'}
- auto
求解器根据基于 X.shape 和 n_components 的默认策略选择:如果输入数据大于 500x500 且要提取的成分数量小于数据最小维度的 80%,则启用更高效的“随机化”方法。否则计算精确的完整 SVD,之后可选地截断。
- full
运行精确的完整 SVD,并通过后处理选择成分
- randomized
使用
da.linalg.svd_compressed
运行随机化 SVD。
- iterated_power: 整数
- random_state: None 或 整数
用于随机化 SVD 的参数。
- 属性
- components_数组,形状 (n_components, n_features)
具有最大方差的成分。
- explained_variance_数组,形状 (n_components,)
每个选定成分解释的方差。
- explained_variance_ratio_数组,形状 (n_components,)
每个选定成分解释的方差百分比。如果所有成分都已存储,则解释方差之和等于 1.0。
- singular_values_数组,形状 (n_components,)
对应于每个选定成分的奇异值。奇异值等于更低维度空间中
n_components
个变量的 2-范数。- mean_数组,形状 (n_features,)
每个特征的经验均值,在
partial_fit
调用之间累积。- var_数组,形状 (n_features,)
每个特征的经验方差,在
partial_fit
调用之间累积。- noise_variance_float
根据 Tipping 和 Bishop 1999 年的概率 PCA 模型估计的噪声协方差。请参阅 C. Bishop 的《模式识别与机器学习》,12.2.1 节 第 574 页,或 http://www.miketipping.com/papers/met-mppca.pdf。
- n_components_int
估计的成分数量。当
n_components=None
时相关。- n_samples_seen_int
估计器处理的样本数量。在新的 fit 调用时将重置,但在
partial_fit
调用之间增加。
方法
fit
(X[, y])用 X 拟合模型。
fit_transform
(X[, y])用 X 拟合模型并在 X 上应用降维。
get_covariance
()使用生成模型计算数据协方差。
get_feature_names_out
([input_features])获取转换的输出特征名称。
get_metadata_routing
()获取此对象的元数据路由。
get_params
([deep])获取此估计器的参数。
get_precision
()使用生成模型计算数据精度矩阵。
inverse_transform
(X)将数据转换回其原始空间。
partial_fit
(X[, y, check_input])用 X 进行增量拟合。
score
(X[, y])返回所有样本的平均对数似然。
score_samples
(X)返回每个样本的对数似然。
set_output
(*[, transform])设置输出容器。
set_params
(**params)设置此估计器的参数。
set_partial_fit_request
(*[, check_input])请求传递给
partial_fit
方法的元数据。transform
(X)在 X 上应用降维。
- __init__(n_components=None, whiten=False, copy=True, batch_size=None, svd_solver='auto', iterated_power=0, random_state=None)¶