PLSSVD#

class sklearn.cross_decomposition.PLSSVD(n_components=2, *, scale=True, copy=True)[source]#

偏最小平方奇異值分解 (Partial Least Square SVD)。

此轉換器僅對交叉共變異數矩陣 X'Y 執行奇異值分解 (SVD)。它能夠投影訓練資料 X 和目標 Y。訓練資料 X 投影到左奇異向量上,而目標則投影到右奇異向量上。

使用者指南中閱讀更多內容。

在 0.8 版本中新增。

參數:
n_componentsint,預設值=2

要保留的組件數量。應在 [1, min(n_samples, n_features, n_targets)] 範圍內。

scalebool,預設值=True

是否縮放 XY

copybool,預設值=True

是否在進行中心化和可能的縮放之前,複製 XY 來進行擬合。如果為 False,這些操作將會直接在原地執行,修改兩個陣列。

屬性:
x_weights_形狀為 (n_features, n_components) 的 ndarray

交叉共變異數矩陣的 SVD 的左奇異向量。用於在 transform 中投影 X

y_weights_形狀為 (n_targets, n_components) 的 ndarray

交叉共變異數矩陣的 SVD 的右奇異向量。用於在 transform 中投影 X

n_features_in_int

fit 期間看到的特徵數量。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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)[原始碼]#

將模型擬合到資料。

參數:
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)[原始碼]#

學習並應用降維。

參數:
X形狀為 (n_samples, n_features) 的類陣列

訓練樣本。

y形狀為 (n_samples,) 或 (n_samples, n_targets) 的類陣列,預設值為 None

目標。

返回:
out類陣列或類陣列的元組

如果 Y 不是 None,則為轉換後的資料 X_transformed,否則為 (X_transformed, Y_transformed)

get_feature_names_out(input_features=None)[原始碼]#

取得轉換的輸出特徵名稱。

輸出特徵名稱將會以小寫的類別名稱作為前綴。例如,如果轉換器輸出 3 個特徵,則輸出特徵名稱為:["class_name0", "class_name1", "class_name2"]

參數:
input_features字串類陣列或 None,預設值為 None

僅用於驗證特徵名稱是否與在 fit 中看到的名稱相同。

返回:
feature_names_out字串物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南,了解路由機制如何運作。

返回:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估計器的參數。

參數:
deepbool,預設值為 True

如果為 True,將返回此估計器和包含的子物件(也是估計器)的參數。

返回:
paramsdict

參數名稱對應到它們的值。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱介紹 set_output API,以了解如何使用此 API 的範例。

參數:
transform{"default", "pandas", "polars"}, 預設值=None

設定 transformfit_transform 的輸出。

  • "default": 轉換器的預設輸出格式

  • "pandas": DataFrame 輸出

  • "polars": Polars 輸出

  • None: 轉換組態保持不變

1.4 版新增:新增了 "polars" 選項。

返回:
self估計器實例

估計器實例。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件(例如Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估計器參數。

返回:
self估計器實例

估計器實例。

transform(X, y=None, Y=None)[原始碼]#

應用降維。

參數:
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 不是 None,則為轉換後的資料 X_transformed,否則為 (X_transformed, Y_transformed)