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
是否縮放
X
和Y
。- max_iterint,預設值=500
冪方法的最大迭代次數。
- tolfloat,預設值=1e-06
在冪迭代法中,作為收斂標準的容差:當
u_i - u_{i-1}
的平方範數小於tol
時,演算法停止。其中u
對應到左奇異向量。- copybool,預設值為 True
是否在擬合之前複製
X
和Y
,以進行中心化和可能的縮放。如果為 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
是否複製
X
和Y
,或執行原地正規化。
- 回傳值:
- 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
配置
transform
和fit_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
用於
predict
中copy
參數的中繼資料路由。
- 回傳值:
- 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
用於
score
中sample_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
針對
transform
中copy
參數的元數據路由。
- 回傳值:
- 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
是否複製
X
和Y
,或執行原地正規化。
- 回傳值:
- x_scores, y_scores形狀類似陣列或形狀類似陣列的元組
如果沒有給定
Y
,則回傳x_scores
;否則回傳(x_scores, y_scores)
。