CCA#

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

典型相關分析,也稱為“模式B”PLS。

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

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

參數:
n_componentsint,預設值=2

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

scalebool,預設值=True

是否縮放 XY

max_iterint,預設值=500

冪方法的最大迭代次數。

tolfloat,預設值=1e-06

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

copybool,預設值為 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,) 的 list

每個分量的冪迭代法迭代次數。

n_features_in_int

fit 期間看到的特徵數量。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在版本 1.0 中新增。

另請參閱

PLSCanonical

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

PLSSVD

偏最小平方奇異值分解。

範例

>>> from sklearn.cross_decomposition import CCA
>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [3.,5.,4.]]
>>> y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
>>> cca = CCA(n_components=1)
>>> cca.fit(X, y)
CCA(n_components=1)
>>> X_c, Y_c = cca.transform(X, y)
fit(X, y=None, Y=None)[source]#

將模型擬合到資料。

參數:
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)[source]#

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

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

取得此估算器的參數。

參數:
deepbool, default=True

若為 True,將返回此估算器和所包含的子物件(也是估算器)的參數。

回傳值:
paramsdict

參數名稱對應其值。

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_reconstructedndarray,形狀為 (n_samples, n_features)

返回重構的 X 資料。

y_reconstructedndarray,形狀為 (n_samples, n_targets)

返回重構的 X 目標。只有在給定 y 時才會返回。

註記

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

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

預測給定樣本的目標。

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

樣本。

copybool,預設值為 True

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

回傳值:
y_predndarray,形狀為 (n_samples,) 或 (n_samples, n_targets)

返回預測值。

註記

此呼叫需要估算一個形狀為 (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)

X 的真實值。

sample_weight類陣列,形狀為 (n_samples,),預設值為 None

樣本權重。

回傳值:
scorefloat

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”}, default=None

配置 transformfit_transform 的輸出。

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

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換配置未更改

在 1.4 版本中新增: 新增了 "polars" 選項。

回傳值:
self估算器實例

估算器實例。

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

設定此估算器的參數。

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

參數:
**params字典

估算器參數。

回傳值:
self估算器實例

估算器實例。

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

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

請注意,只有當 enable_metadata_routing=True 時,此方法才相關 (請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項為:

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

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

  • None:不要求中繼資料,且如果使用者提供,元估算器會引發錯誤。

  • str:應該以給定的別名而不是原始名稱將中繼資料傳遞給元估算器。

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

在版本 1.3 中新增。

注意

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

參數:
copy字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED

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

回傳值:
self物件

更新後的物件。

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

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

請注意,只有當 enable_metadata_routing=True 時,此方法才相關 (請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項為:

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

  • False:不要求中繼資料,且元估算器不會將其傳遞給 score

  • None:不要求中繼資料,且如果使用者提供,元估算器會引發錯誤。

  • str:應該以給定的別名而不是原始名稱將中繼資料傳遞給元估算器。

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

在版本 1.3 中新增。

注意

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

參數:
sample_weight字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED

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

回傳值:
self物件

更新後的物件。

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

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

請注意,只有當 enable_metadata_routing=True 時,此方法才相關 (請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項為:

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

  • False:不請求元數據,且元估計器不會將其傳遞給 transform

  • None:不要求中繼資料,且如果使用者提供,元估算器會引發錯誤。

  • str:應該以給定的別名而不是原始名稱將中繼資料傳遞給元估算器。

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

在版本 1.3 中新增。

注意

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

參數:
copy字串、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,預設值為 True

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

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

如果沒有給定 Y,則回傳 x_scores;否則回傳 (x_scores, y_scores)