多項式計數草圖#

class sklearn.kernel_approximation.PolynomialCountSketch(*, gamma=1.0, degree=2, coef0=0, n_components=100, random_state=None)[原始碼]#

透過張量草圖 (Tensor Sketch) 進行多項式核函數近似。

實作張量草圖 (Tensor Sketch),它使用快速傅立葉轉換 (FFT) 有效率地計算向量與其自身外積的計數草圖 (Count Sketch),來近似多項式核函數的特徵映射。

K(X, Y) = (gamma * <X, Y> + coef0)^degree

詳情請參閱使用者指南

在 0.24 版本中新增。

參數:
gammafloat,預設值=1.0

將被近似其特徵映射的多項式核函數的參數。

degreeint,預設值=2

將被近似其特徵映射的多項式核函數的次數。

coef0int,預設值=0

將被近似其特徵映射的多項式核函數的常數項。

n_componentsint,預設值=100

輸出特徵空間的維度。通常,n_components 應大於輸入樣本中的特徵數量,以達到良好的效能。最佳分數/執行時間平衡通常在 n_components = 10 * n_features 附近實現,但這取決於所使用的特定資料集。

random_stateint、RandomState 實例,預設值=None

決定 indexHash 和 bitHash 初始化的隨機數生成。傳遞一個 int 以便在多次函數呼叫中獲得可重現的結果。請參閱詞彙表

屬性:
indexHash_形狀為 (degree, n_features) 的 ndarray,dtype=int64

用於表示計數草圖 (Count Sketch) 計算的 2 兩兩獨立雜湊函數,範圍為 [0, n_components) 的索引陣列。

bitHash_形狀為 (degree, n_features) 的 ndarray,dtype=float32

具有 {+1, -1} 中隨機條目的陣列,用於表示計數草圖 (Count Sketch) 計算的 2 兩兩獨立雜湊函數。

n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在 1.0 版本中新增。

另請參閱

AdditiveChi2Sampler

用於加性卡方核函數的近似特徵映射。

Nystroem

使用訓練資料的子集來近似核函數映射。

RBFSampler

使用隨機傅立葉特徵來近似 RBF 核函數特徵映射。

SkewedChi2Sampler

用於「偏斜卡方」核函數的近似特徵映射。

sklearn.metrics.pairwise.kernel_metrics

內建核函數列表。

範例

>>> from sklearn.kernel_approximation import PolynomialCountSketch
>>> from sklearn.linear_model import SGDClassifier
>>> X = [[0, 0], [1, 1], [1, 0], [0, 1]]
>>> y = [0, 0, 1, 1]
>>> ps = PolynomialCountSketch(degree=3, random_state=1)
>>> X_features = ps.fit_transform(X)
>>> clf = SGDClassifier(max_iter=10, tol=1e-3)
>>> clf.fit(X_features, y)
SGDClassifier(max_iter=10)
>>> clf.score(X_features, y)
1.0

有關更詳細的使用範例,請參閱使用多項式核函數近似進行可擴展學習

fit(X, y=None)[原始碼]#

使用 X 擬合模型。

初始化內部變數。該方法不需要有關資料分佈的任何資訊,因此我們只關心 X 中的 n_features。

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

擬合資料,然後轉換資料。

使用可選參數 fit_params 將轉換器擬合到 Xy,並返回 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_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

設定 transformfit_transform 的輸出。

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

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

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

返回:
self估算器實例

估算器實例。

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

設定此估算器的參數。

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

參數:
**params字典

估算器參數。

返回:
self估算器實例

估算器實例。

transform(X)[原始碼]#

為 X 產生特徵映射近似值。

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

新資料,其中 n_samples 是樣本數,而 n_features 是特徵數。

返回:
X_new類陣列,形狀為 (n_samples, n_components)

返回實例本身。