核心中心器#
- class sklearn.preprocessing.KernelCenterer[原始碼]#
將任意核矩陣 \(K\) 置中。
定義一個核 \(K\),使得
\[K(X, Y) = \phi(X) . \phi(Y)^{T}\]\(\phi(X)\) 是將 \(X\) 的列映射到希爾伯特空間的函數,而 \(K\) 的形狀為
(n_samples, n_samples)
。這個類別允許計算 \(\tilde{K}(X, Y)\),使得
\[\tilde{K(X, Y)} = \tilde{\phi}(X) . \tilde{\phi}(Y)^{T}\]\(\tilde{\phi}(X)\) 是希爾伯特空間中置中的映射資料。
KernelCenterer
在不顯式計算映射 \(\phi(\cdot)\) 的情況下將特徵置中。當處理代數計算(例如KernelPCA
的特徵分解)時,有時會需要使用置中的核。請參閱使用者指南中的更多資訊。
- 屬性:
另請參閱
sklearn.kernel_approximation.Nystroem
使用訓練資料的子集逼近核映射。
參考文獻
範例
>>> from sklearn.preprocessing import KernelCenterer >>> from sklearn.metrics.pairwise import pairwise_kernels >>> X = [[ 1., -2., 2.], ... [ -2., 1., 3.], ... [ 4., 1., -2.]] >>> K = pairwise_kernels(X, metric='linear') >>> K array([[ 9., 2., -2.], [ 2., 14., -13.], [ -2., -13., 21.]]) >>> transformer = KernelCenterer().fit(K) >>> transformer KernelCenterer() >>> transformer.transform(K) array([[ 5., 0., -5.], [ 0., 14., -14.], [ -5., -14., 19.]])
- fit(K, y=None)[原始碼]#
擬合 KernelCenterer。
- 參數:
- K形狀為 (n_samples, n_samples) 的 ndarray
核矩陣。
- yNone
忽略。
- 傳回:
- self物件
傳回實例本身。
- fit_transform(X, y=None, **fit_params)[原始碼]#
擬合資料,然後轉換它。
使用可選參數
fit_params
將轉換器擬合到X
和y
,並傳回轉換後的X
版本。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設值為 None
目標值(無監督轉換則為 None)。
- **fit_params字典
額外的擬合參數。
- 傳回:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- 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字典
將參數名稱映射到其值的字典。
- 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字典
估算器參數。
- 傳回:
- self估算器實例
估算器實例。
- set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') KernelCenterer [原始碼]#
請求傳遞至
transform
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 「使用者指南」 以了解路由機制的運作方式。每個參數的選項如下:
True
:請求中繼資料,並在提供時傳遞至transform
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,並且 meta-estimator 不會將其傳遞至transform
。None
:不請求中繼資料,如果使用者提供中繼資料,則 meta-estimator 會引發錯誤。str
:中繼資料應該以指定的別名(而不是原始名稱)傳遞至 meta-estimator。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這可讓您變更某些參數的請求,而不變更其他參數的請求。1.3 版本新增。
請注意
僅當此估算器用作 meta-estimator 的子估算器時,此方法才相關,例如在
Pipeline
中使用。否則,它沒有任何作用。- 參數:
- copystr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
transform
中copy
參數的中繼資料路由。
- 傳回:
- self物件
更新後的物件。