偏最小二乘奇异值分解#

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

是否缩放 XY

copybool, 默认值=True

在应用居中和潜在缩放之前,是否复制 XY 用于拟合。如果为 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

配置transformfit_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)