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
是否縮放
X
和Y
。- 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
在套用中心化和潛在的縮放之前,是否在擬合中複製
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,) 的列表
每個組件的冪方法迭代次數。如果
algorithm='svd'
,則為空。- n_features_in_int
在擬合期間看到的特徵數量。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在擬合期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時定義。於 1.0 版本新增。
範例
>>> 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
是否複製
X
和Y
,或執行就地正規化。
- 傳回值:
- 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
設定
transform
和fit_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
用於
predict
中copy
參數的中繼資料路由。
- 傳回值:
- 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
用於
score
中sample_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
用於
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, default=True
是否複製
X
和Y
,或執行就地正規化。
- 傳回值:
- x_scores, y_scores類陣列或類陣列的元組
如果未提供
Y
,則傳回x_scores
,否則傳回(x_scores, y_scores)
。