Nystroem#
- class sklearn.kernel_approximation.Nystroem(kernel='rbf', *, gamma=None, coef0=None, degree=None, kernel_params=None, n_components=100, random_state=None, n_jobs=None)[source]#
使用訓練資料的子集來近似核函數映射。
使用資料的子集作為基礎,為任意核函數建構近似的特徵映射。
請參閱使用者指南以了解更多資訊。
在 0.13 版本中新增。
- 參數:
- kernelstr 或可調用物件,預設值為 ‘rbf’
要近似的核函數映射。可調用物件應接受兩個參數和傳遞給此物件的關鍵字參數(作為
kernel_params
),並應回傳一個浮點數。- gammafloat,預設值為 None
RBF、拉普拉斯、多項式、指數卡方和 Sigmoid 核函數的 Gamma 參數。預設值的解讀留給核函數;請參閱 sklearn.metrics.pairwise 的文件。其他核函數會忽略此參數。
- coef0float,預設值=None
多項式和 Sigmoid 核函數的零係數。其他核函數會忽略此參數。
- degreefloat,預設值=None
多項式核函數的次數。其他核函數會忽略此參數。
- kernel_paramsdict,預設值=None
傳遞為可呼叫物件的核函數的其他參數(關鍵字引數)。
- n_componentsint,預設值=100
要建構的特徵數量。將使用多少資料點來建構映射。
- random_stateint、RandomState 實例或 None,預設值=None
用於控制不重複均勻取樣的虛擬隨機數產生器,從訓練資料中取樣
n_components
來建構基礎核函數。傳入 int 以在多個函式呼叫中產生可重複的輸出。請參閱詞彙表。- n_jobsint,預設值=None
用於計算的平行處理數量。其原理是將核矩陣分解為
n_jobs
個均等的部分,並平行計算這些部分。None
代表 1,除非在joblib.parallel_backend
環境中。-1
代表使用所有處理器。請參閱詞彙表以了解更多詳細資訊。在 0.24 版本中新增。
- 屬性:
- components_形狀為 (n_components, n_features) 的 ndarray
用於建構特徵映射的訓練點子集。
- component_indices_形狀為 (n_components) 的 ndarray
components_
在訓練集中的索引。- normalization_形狀為 (n_components, n_components) 的 ndarray
嵌入所需的正規化矩陣。在
components_
上核矩陣的平方根。- n_features_in_int
在 fit 期間看到的特徵數量。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。在 1.0 版本中新增。
另請參閱
AdditiveChi2Sampler
additive chi2 核函數的近似特徵映射。
PolynomialCountSketch
透過張量草圖的多項式核函數近似。
RBFSampler
使用隨機傅立葉特徵近似 RBF 核函數特徵映射。
SkewedChi2Sampler
「偏斜卡方」核函數的近似特徵映射。
sklearn.metrics.pairwise.kernel_metrics
內建核函數列表。
參考文獻
Williams, C.K.I. 和 Seeger, M. “使用 Nystroem 方法加速核機器”,神經資訊處理系統進展 2001
T. Yang, Y. Li, M. Mahdavi, R. Jin 和 Z. Zhou “Nystroem 方法 vs 隨機傅立葉特徵:理論和實證比較”,神經資訊處理系統進展 2012
範例
>>> from sklearn import datasets, svm >>> from sklearn.kernel_approximation import Nystroem >>> X, y = datasets.load_digits(n_class=9, return_X_y=True) >>> data = X / 16. >>> clf = svm.LinearSVC() >>> feature_map_nystroem = Nystroem(gamma=.2, ... random_state=1, ... n_components=300) >>> data_transformed = feature_map_nystroem.fit_transform(data) >>> clf.fit(data_transformed, y) LinearSVC() >>> clf.score(data_transformed, y) 0.9987...
- fit(X, y=None)[原始碼]#
將估算器擬合到資料。
對訓練點的子集進行取樣,計算這些點上的核函數,並計算正規化矩陣。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
訓練資料,其中
n_samples
是樣本數量,n_features
是特徵數量。- y類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs),預設值=None
目標值(對於非監督轉換為 None)。
- 返回:
- self物件
返回實例本身。
- fit_transform(X, y=None, **fit_params)[原始碼]#
將資料擬合,然後轉換資料。
將轉換器擬合到
X
和y
,並使用可選參數fit_params
,然後返回X
的轉換版本。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設值=None
目標值(對於非監督轉換為 None)。
- **fit_paramsdict
其他擬合參數。
- 返回:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- get_feature_names_out(input_features=None)[原始碼]#
取得轉換的輸出特徵名稱。
輸出特徵名稱將以小寫的類別名稱作為前綴。例如,如果轉換器輸出 3 個特徵,則輸出特徵名稱為:
["class_name0", "class_name1", "class_name2"]
。- 參數:
- input_featuresstr 的類陣列或 None,預設值=None
僅用於驗證特徵名稱是否與
fit
中看到的名稱一致。
- 返回:
- feature_names_out字串物件的 ndarray
轉換後的特徵名稱。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南 以瞭解路由機制如何運作。
- 返回:
- routingMetadataRequest
一個
MetadataRequest
,封裝了路由資訊。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool,預設值為 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估算器實例
估算器實例。