PLSCanonical# (偏最小平方法典型相關)

class sklearn.cross_decomposition.PLSCanonical(n_components=2, *, scale=True, algorithm='nipals', max_iter=500, tol=1e-06, copy=True)[原始碼]#

偏最小平方法轉換器和迴歸器。

如需比較其他交叉分解演算法,請參閱比較交叉分解方法

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

於 0.8 版本新增。

參數:
n_componentsint, default=2

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

scalebool, default=True

是否縮放 XY

algorithm{‘nipals’, ‘svd’}, default=’nipals’

用於估計交叉共變異數矩陣的第一個奇異向量的演算法。'nipals' 使用冪方法,而 'svd' 將計算整個 SVD。

max_iterint, default=500

algorithm='nipals' 時,冪方法的最大迭代次數。否則將忽略。

tolfloat, default=1e-06

在冪方法中用作收斂標準的容差:當 u_i - u_{i-1} 的平方範數小於 tol 時,演算法停止,其中 u 對應於左奇異向量。

copybool, default=True

在套用中心化和潛在的縮放之前,是否在擬合中複製 XY。如果為 False,這些操作將就地執行,修改兩個陣列。

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

每次迭代的交叉共變異數矩陣的左奇異向量。

y_weights_形狀為 (n_targets, n_components) 的 ndarray

每次迭代的交叉共變異數矩陣的右奇異向量。

x_loadings_形狀為 (n_features, n_components) 的 ndarray

X 的負載。

y_loadings_形狀為 (n_targets, n_components) 的 ndarray

Y 的負載。

x_rotations_形狀為 (n_features, n_components) 的 ndarray

用於轉換 X 的投影矩陣。

y_rotations_形狀為 (n_targets, n_components) 的 ndarray

用於轉換 Y 的投影矩陣。

coef_形狀為 (n_targets, n_features) 的 ndarray

線性模型的係數,使得 Y 近似為 Y = X @ coef_.T + intercept_

intercept_形狀為 (n_targets,) 的 ndarray

線性模型的截距,使得 Y 近似為 Y = X @ coef_.T + intercept_

於 1.1 版本新增。

n_iter_形狀為 (n_components,) 的列表

每個組件的冪方法迭代次數。如果 algorithm='svd',則為空。

n_features_in_int

擬合期間看到的特徵數量。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

擬合期間看到的特徵名稱。僅當 X 具有全部為字串的特徵名稱時定義。

於 1.0 版本新增。

另請參閱

CCA

典型相關分析。

PLSSVD

偏最小平方奇異值分解。

範例

>>> from sklearn.cross_decomposition import PLSCanonical
>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
>>> y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
>>> plsca = PLSCanonical(n_components=2)
>>> plsca.fit(X, y)
PLSCanonical()
>>> X_c, y_c = plsca.transform(X, y)
fit(X, y=None, Y=None)[原始碼]#

將模型擬合到資料。

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

訓練向量,其中 n_samples 是樣本數,而 n_features 是預測變數的數量。

y形狀為 (n_samples,) 或 (n_samples, n_targets) 的類陣列

目標向量,其中 n_samples 是樣本數,而 n_targets 是回應變數的數量。

Y形狀為 (n_samples,) 或 (n_samples, n_targets) 的類陣列

目標向量,其中 n_samples 是樣本數,而 n_targets 是回應變數的數量。

自 1.5 版本起已棄用:Y 在 1.5 版本中已棄用,並將在 1.7 版本中移除。請改用 y

傳回值:
self物件

已擬合的模型。

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

學習並對訓練資料應用降維。

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

訓練向量,其中 n_samples 是樣本數,而 n_features 是預測變數的數量。

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

目標向量,其中 n_samples 是樣本數,而 n_targets 是回應變數的數量。

傳回值:
self形狀為 (n_samples, n_components) 的 ndarray

如果未提供 Y,則傳回 x_scores,否則傳回 (x_scores, y_scores)

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

取得此估算器的參數。

參數:
deep布林值,預設為 True

如果為 True,則會傳回此估算器和包含的子物件(亦為估算器)的參數。

傳回值:
params字典

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

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

將資料轉換回其原始空間。

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

新資料,其中 n_samples 是樣本數,而 n_components 是 pls 成分數。

y形狀為 (n_samples,) 或 (n_samples, n_components) 的類陣列

新目標,其中 n_samples 是樣本數,而 n_components 是 pls 成分數。

Y形狀為 (n_samples, n_components) 的類陣列

新目標,其中 n_samples 是樣本數,而 n_components 是 pls 成分數。

自 1.5 版本起已棄用:Y 在 1.5 版本中已棄用,並將在 1.7 版本中移除。請改用 y

傳回值:
X_reconstructed形狀為 (n_samples, n_features) 的 ndarray

傳回重建的 X 資料。

y_reconstructed形狀為 (n_samples, n_targets) 的 ndarray

傳回重建的 X 目標。僅在提供 y 時傳回。

注意事項

只有在 n_components=n_features 時,此轉換才會完全精確。

predict(X, copy=True)[原始碼]#

預測給定樣本的目標。

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

樣本。

copybool, default=True

是否複製 XY,或執行就地正規化。

傳回值:
y_pred形狀為 (n_samples,) 或 (n_samples, n_targets) 的 ndarray

傳回預測值。

注意事項

此呼叫需要估計形狀為 (n_features, n_targets) 的矩陣,這在高維空間中可能會是一個問題。

score(X, y, sample_weight=None)[原始碼]#

傳回預測的決定係數。

決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和 ((y_true - y_pred)** 2).sum(),而 \(v\) 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳可能的分數是 1.0,而且它可以是負數(因為模型可能任意差)。一個總是預測 y 的期望值,而忽略輸入特徵的常數模型,會得到 \(R^2\) 分數 0.0。

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

測試樣本。對於某些估計器,這可能是一個預先計算的核矩陣或一個形狀為 (n_samples, n_samples_fitted) 的通用物件列表,其中 n_samples_fitted 是估計器擬合中使用的樣本數。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like)

X 的真實值。

sample_weight形狀為 (n_samples,) 的類陣列 (array-like),預設值為 None

樣本權重。

傳回值:
score浮點數 (float)

self.predict(X) 相對於 y\(R^2\)

注意事項

當對回歸器呼叫 score 時使用的 \(R^2\) 分數,從 0.23 版開始使用 multioutput='uniform_average',以與 r2_score 的預設值保持一致。這會影響所有多輸出回歸器的 score 方法(除了 MultiOutputRegressor)。

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> 形式的參數,因此可以更新巢狀物件的每個組件。

參數:
**params字典 (dict)

估計器參數。

傳回值:
self估計器實例

估計器實例。

set_predict_request(*, copy: bool | None | str = '$UNCHANGED$') PLSCanonical[原始碼]#

請求傳遞給 predict 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項如下:

  • True:請求中繼資料,並在提供時傳遞給 predict。如果未提供中繼資料,則會忽略該請求。

  • False:不請求中繼資料,並且元估計器不會將其傳遞給 predict

  • None:不請求中繼資料,如果使用者提供中繼資料,則元估計器將引發錯誤。

  • str:中繼資料應使用給定的別名而不是原始名稱傳遞給元估計器。

預設值(sklearn.utils.metadata_routing.UNCHANGED)會保留現有的請求。這允許您變更部分參數的請求,而不變更其他參數的請求。

於 1.3 版本新增。

注意

只有當此估計器作為元估計器的子估計器使用時,例如在 Pipeline 中使用時,此方法才相關。否則它沒有任何作用。

參數:
copystr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 predictcopy 參數的中繼資料路由。

傳回值:
self物件

已更新的物件。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PLSCanonical[原始碼]#

請求傳遞至 score 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項如下:

  • True:請求中繼資料,如果提供則傳遞至 score。如果未提供中繼資料,則忽略請求。

  • False:不請求中繼資料,元估計器不會將其傳遞至 score

  • None:不請求中繼資料,如果使用者提供中繼資料,則元估計器將引發錯誤。

  • str:中繼資料應使用給定的別名而不是原始名稱傳遞給元估計器。

預設值(sklearn.utils.metadata_routing.UNCHANGED)會保留現有的請求。這允許您變更部分參數的請求,而不變更其他參數的請求。

於 1.3 版本新增。

注意

只有當此估計器作為元估計器的子估計器使用時,例如在 Pipeline 中使用時,此方法才相關。否則它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 scoresample_weight 參數的中繼資料路由。

傳回值:
self物件

已更新的物件。

set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') PLSCanonical[原始碼]#

請求傳遞至 transform 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項如下:

  • True:請求中繼資料,如果提供則傳遞至 transform。如果未提供中繼資料,則忽略請求。

  • False:不請求中繼資料,元估計器不會將其傳遞至 transform

  • None:不請求中繼資料,如果使用者提供中繼資料,則元估計器將引發錯誤。

  • str:中繼資料應使用給定的別名而不是原始名稱傳遞給元估計器。

預設值(sklearn.utils.metadata_routing.UNCHANGED)會保留現有的請求。這允許您變更部分參數的請求,而不變更其他參數的請求。

於 1.3 版本新增。

注意

只有當此估計器作為元估計器的子估計器使用時,例如在 Pipeline 中使用時,此方法才相關。否則它沒有任何作用。

參數:
copystr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 transformcopy 參數的中繼資料路由。

傳回值:
self物件

已更新的物件。

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

套用降維。

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

要轉換的樣本。

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

目標向量。

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

目標向量。

自 1.5 版本起已棄用:Y 在 1.5 版本中已棄用,並將在 1.7 版本中移除。請改用 y

copybool, default=True

是否複製 XY,或執行就地正規化。

傳回值:
x_scores, y_scores類陣列或類陣列的元組

如果未提供 Y,則傳回 x_scores,否則傳回 (x_scores, y_scores)