偏最小二乘奇异值分解#
- class sklearn.cross_decomposition.PLSSVD(n_components=2, *, scale=True, copy=True)[source]#
偏最小二乘奇异值分解。
此变换器仅对交叉协方差矩阵
X'Y
执行奇异值分解。它能够投影训练数据X
和目标Y
。训练数据X
投影到左奇异向量上,而目标投影到右奇异向量上。更多信息请参见用户指南。
版本 0.8 中新增。
- 参数:
- n_componentsint, default=2
要保留的成分数量。应在
[1, min(n_samples, n_features, n_targets)]
范围内。- scalebool, 默认值=True
是否缩放
X
和Y
。- copybool, 默认值=True
在应用居中和潜在缩放之前,是否复制
X
和Y
用于拟合。如果为False
,则这些操作将在原位进行,修改这两个数组。
- 属性:
- x_weights_ndarray 形状为 (n_features, n_components)
交叉协方差矩阵 SVD 的左奇异向量。用于在
transform
中投影X
。- y_weights_ndarray 形状为 (n_targets, n_components)
交叉协方差矩阵 SVD 的右奇异向量。用于在
transform
中投影X
。- n_features_in_int
在 fit 期间看到的特征数量。
- feature_names_in_ndarray 形状为 (
n_features_in_
,) 在 fit 期间看到的特征名称。仅当
X
的特征名称全部为字符串时才定义。1.0 版本新增。
另请参见
PLSCanonical
偏最小二乘变换器和回归器。
CCA
典型相关分析。
示例
>>> import numpy as np >>> from sklearn.cross_decomposition import PLSSVD >>> X = np.array([[0., 0., 1.], ... [1., 0., 0.], ... [2., 2., 2.], ... [2., 5., 4.]]) >>> y = np.array([[0.1, -0.2], ... [0.9, 1.1], ... [6.2, 5.9], ... [11.9, 12.3]]) >>> pls = PLSSVD(n_components=2).fit(X, y) >>> X_c, y_c = pls.transform(X, y) >>> X_c.shape, y_c.shape ((4, 2), (4, 2))
- fit(X, y=None, Y=None)[source]#
将模型拟合到数据。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
训练样本。
- y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组
目标值。
- Y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组
目标值。
自 1.5 版本起已弃用:
Y
在 1.5 中已弃用,并将在 1.7 中移除。请使用y
代替。
- 返回:
- self对象
已拟合的估计器。
- fit_transform(X, y=None)[source]#
学习并应用降维。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
训练样本。
- y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组,默认值=None
目标值。
- 返回:
- out类数组或类数组元组
如果
Y is not None
,则为转换后的数据X_transformed
;否则为(X_transformed, Y_transformed)
。
- get_feature_names_out(input_features=None)[source]#
获取转换后的特征名称。
输出的特征名称将以小写的类名作为前缀。例如,如果变换器输出 3 个特征,则输出的特征名称为:
["class_name0", "class_name1", "class_name2"]
。- 参数:
- input_features字符串类数组或 None,默认值=None
仅用于使用在
fit
中看到的名称验证特征名称。
- 返回:
- feature_names_out字符串对象的 ndarray
转换后的特征名称。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查看 用户指南,了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
一个
MetadataRequest
封装了路由信息。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deepbool, 默认值=True
如果为 True,则将返回此估计器和包含的子对象(这些子对象也是估计器)的参数。
- 返回:
- paramsdict
参数名称与其值的映射。
- set_output(*, transform=None)[source]#
设置输出容器。
请查看 介绍 set_output API,了解如何使用此 API 的示例。
- 参数:
- transform{"default", "pandas", "polars"},默认值=None
配置
transform
和fit_transform
的输出。"default"
:转换器的默认输出格式"pandas"
:DataFrame 输出"polars"
:Polars 输出None
:转换配置保持不变
1.4版本新增:
"polars"
选项已添加。
- 返回:
- self估计器实例
估计器实例。
- set_params(**params)[source]#
设置此估计器的参数。
此方法适用于简单的估计器以及嵌套对象(例如
Pipeline
)。后者具有<component>__<parameter>
形式的参数,因此可以更新嵌套对象的每个组件。- 参数:
- **params字典
估计器参数。
- 返回:
- self估计器实例
估计器实例。
- transform(X, y=None, Y=None)[source]#
应用降维。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
待转换的样本。
- y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组,默认值=None
目标值。
- Y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组,默认为 None
目标值。
自 1.5 版本起已弃用:
Y
在 1.5 中已弃用,并将在 1.7 中移除。请使用y
代替。
- 返回:
- x_scores类数组或类数组元组
如果
Y is not None
,则为转换后的数据X_transformed
;否则为(X_transformed, Y_transformed)
。