成對核函數#
- class sklearn.gaussian_process.kernels.PairwiseKernel(gamma=1.0, gamma_bounds=(1e-05, 100000.0), metric='linear', pairwise_kernels_kwargs=None)[原始碼]#
sklearn.metrics.pairwise 中核函數的包裝器。
sklearn.metrics.pairwise 中核函數功能的薄包裝器。
- 注意:eval_gradient 的評估不是解析的,而是數值的,並且所有
核函數僅支援同向距離。參數 gamma 被認為是超參數,可以最佳化。其他核函數參數在初始化時直接設定,並保持固定。
在 0.18 版本中新增。
- 參數:
- gammafloat,預設值=1.0
由度量指定的成對核函數的參數 gamma。它應該是正數。
- gamma_bounds一對浮點數 >= 0 或「fixed」,預設值=(1e-5, 1e5)
「gamma」的下限和上限。如果設定為「fixed」,則在超參數調整期間無法變更「gamma」。
- metric{“linear”, “additive_chi2”, “chi2”, “poly”, “polynomial”, “rbf”, “laplacian”, “sigmoid”, “cosine”} 或可呼叫函數,預設值=”linear”
計算特徵陣列中實例之間核函數時使用的度量。如果度量是字串,則它必須是 pairwise.PAIRWISE_KERNEL_FUNCTIONS 中的度量之一。如果度量是「precomputed」,則假設 X 是核函數矩陣。或者,如果度量是可呼叫函數,則會對每對實例(行)呼叫它,並記錄結果值。可呼叫函數應將來自 X 的兩個陣列作為輸入,並傳回一個表示它們之間距離的值。
- pairwise_kernels_kwargsdict,預設值為 None
此字典中的所有條目(如果有的話)會作為關鍵字參數傳遞給成對核函數。
範例
>>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import PairwiseKernel >>> X, y = load_iris(return_X_y=True) >>> kernel = PairwiseKernel(metric='rbf') >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9733... >>> gpc.predict_proba(X[:2,:]) array([[0.8880..., 0.05663..., 0.05532...], [0.8676..., 0.07073..., 0.06165...]])
- __call__(X, Y=None, eval_gradient=False)[原始碼]#
返回核函數 k(X, Y) 以及(可選的)其梯度。
- 參數:
- X形狀為 (n_samples_X, n_features) 的 ndarray
返回的核函數 k(X, Y) 的左側參數
- Y形狀為 (n_samples_Y, n_features) 的 ndarray,預設值為 None
返回的核函數 k(X, Y) 的右側參數。如果為 None,則會改為計算 k(X, X)。
- eval_gradientbool,預設值為 False
決定是否計算相對於核函數超參數對數的梯度。僅在 Y 為 None 時支援。
- 回傳值:
- K形狀為 (n_samples_X, n_samples_Y) 的 ndarray
核函數 k(X, Y)
- K_gradient形狀為 (n_samples_X, n_samples_X, n_dims) 的 ndarray,可選
核函數 k(X, X) 相對於核函數超參數對數的梯度。僅當
eval_gradient
為 True 時返回。
- property bounds#
返回 theta 的對數轉換邊界。
- 回傳值:
- bounds形狀為 (n_dims, 2) 的 ndarray
核函數超參數 theta 的對數轉換邊界
- diag(X)[原始碼]#
返回核函數 k(X, X) 的對角線。
此方法的结果與 np.diag(self(X)) 相同;但是,由於僅評估對角線,因此可以更有效地評估。
- 參數:
- X形狀為 (n_samples_X, n_features) 的 ndarray
返回的核函數 k(X, Y) 的左側參數
- 回傳值:
- K_diag形狀為 (n_samples_X,) 的 ndarray
核函數 k(X, X) 的對角線
- get_params(deep=True)[原始碼]#
取得此核函數的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,則將返回此估計器和包含的子物件(為估計器)的參數。
- 回傳值:
- paramsdict
參數名稱對應其值的字典。
- property hyperparameters#
返回所有超參數規格的清單。
- property n_dims#
返回核函數的非固定超參數數量。
- property requires_vector_input#
返回核函數是否定義在固定長度的特徵向量或通用物件上。為了回溯相容性,預設值為 True。
- set_params(**params)[原始碼]#
設定此核函數的參數。
此方法適用於簡單的核函數以及巢狀核函數。後者具有
<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個元件。- 回傳值:
- 自身
- property theta#
返回(展平的,對數轉換的)非固定超參數。
請注意,theta 通常是核函數超參數的對數轉換值,因為這種搜尋空間的表示形式更適合超參數搜尋,因為長度尺度等超參數自然存在於對數尺度上。
- 回傳值:
- theta形狀為 (n_dims,) 的 ndarray
核函數的非固定、對數轉換超參數