scikit-learn 內(nèi)核近似

2023-02-20 14:39 更新

該子模塊包含近似于與某些內(nèi)核對應的特征映射的函數(shù),例如在支持向量機中使用它們(請參閱Support Vector Machines)。以下功能函數(shù)執(zhí)行輸入的非線性轉(zhuǎn)換,可以用作線性分類或其他算法的基礎。

與使用隱式特征圖的內(nèi)核技巧相比,使用近似顯式特征圖的優(yōu)勢在于顯式映射更適合在線學習,并且可以極大地減少超大型數(shù)據(jù)集的學習成本。標準的內(nèi)核化SVM不能很好地適應大型數(shù)據(jù)集,但是使用近似的內(nèi)核圖,可以使用效率更高的線性SVM。特別是,內(nèi)核映射近似與 SGDClassifier的組合使用,使在大型數(shù)據(jù)集上進行非線性學習成為可能。

由于沒有太多使用近似嵌入工作的經(jīng)驗,因此建議盡可能將結果與精確內(nèi)核方法進行比較。

另請參閱: 多項式回歸:使用基本函數(shù)擴展線性模型以進行精確的多項式轉(zhuǎn)換。

6.7.1 內(nèi)核近似的Nystroem方法

Nystroem中實現(xiàn)的Nystroem方法是用于內(nèi)核的低秩近似的通用方法。它實質(zhì)上通過對評估內(nèi)核的數(shù)據(jù)進行二次采樣來實現(xiàn)。默認情況下Nystroem使用rbf內(nèi)核,但是它可以使用任何內(nèi)核函數(shù)或預先計算的內(nèi)核矩陣。n_components參數(shù)給出了所用的樣本數(shù)-也是計算的特征的維數(shù)。

6.7.2 徑向基函數(shù)內(nèi)核

RBFSampler為徑向基函數(shù)核構造一個近似映射,也稱為Random Kitchen Sinks [RR2007]。在應用線性算法(例如線性SVM)之前,此轉(zhuǎn)換可用于顯式建模內(nèi)核映射:

>>> from sklearn.kernel_approximation import RBFSampler
>>> from sklearn.linear_model import SGDClassifier
>>> X = [[0, 0], [1, 1], [1, 0], [0, 1]]
>>> y = [0, 0, 1, 1]
>>> rbf_feature = RBFSampler(gamma=1, random_state=1)
>>> X_features = rbf_feature.fit_transform(X)
>>> clf = SGDClassifier(max_iter=5)
>>> clf.fit(X_features, y)
SGDClassifier(max_iter=5)
>>> clf.score(X_features, y)
1.0

這個映射依賴于對內(nèi)核值的蒙特卡洛近似。該fit函數(shù)執(zhí)行蒙特卡洛采樣,而該transform方法執(zhí)行數(shù)據(jù)映射。由于過程固有的隨機性,結果在fit函數(shù)的不同調(diào)用之間可能會有所不同。

fit函數(shù)有兩個參數(shù): n_components,是特征變換的目標維數(shù);以及gamma,是RBF內(nèi)核的參數(shù)。n_components越高,得到越好的內(nèi)核近似,并將產(chǎn)生與內(nèi)核SVM更相似的結果。請注意,“擬合”特征函數(shù)實際上并不取決于賦予fit函數(shù)的數(shù)據(jù),僅使用數(shù)據(jù)的維數(shù)。有關該方法的詳細信息,請參見[RR2007]。

對于n_components 的給定值,RBFSampler通常不如Nystroem準確。不過,RBFSampler這種方法的計算成本較低,因此在較大的特征空間上更有效。

?將精確的RBF內(nèi)核(左)與近似值(右)進行比較

例子:

6.7.3 加性卡方核

加性卡方核是直方圖上的核,通常在計算機視覺中使用。

此處使用的加性卡方核為

這與sklearn.metrics.additive_chi2_kernel并不完全相同。[VZ2010]的作者更喜歡上面的版本,因為它始終是肯定的。由于內(nèi)核是可添加的,因此可以將所有成分 分別處理進行嵌入。這使得有可能以規(guī)則的間隔對傅立葉變換進行采樣,而不是使用蒙特卡洛采樣進行近似。

AdditiveChi2Sampler類實施此組件合理的確定性采樣。每個組件都采樣 次,每個輸入維數(shù)生成 個維數(shù)(兩個傅立葉變換的實數(shù)和復數(shù)部分的倍數(shù))。在文獻中,通常將選擇為1或2,將數(shù)據(jù)集轉(zhuǎn)換為大小n_samples * 5 * n_features(在的情況下)。

AdditiveChi2Sampler所提供的近似特征映射可與RBFSampler所提供的近似的特征映射相結合以產(chǎn)生一個近似特征映射的求冪的卡方內(nèi)核。有關詳細信息請參閱[VZ2010]和[VVZ2010]中的RBFSampler部分。

6.7.4 偏卡方核

偏斜卡方核由以下公式給出:

它具有與計算機視覺中經(jīng)常使用的指數(shù)卡方核相似的屬性,但允許對特征映射進行簡單的蒙特卡洛近似。

SkewedChi2Sampler的用法與上述RBFSampler的用法相同。唯一的區(qū)別在于free參數(shù),稱之為c。有關此映射的理念和數(shù)學細節(jié),請參見[LS2010]。

6.7.5 數(shù)學細節(jié)

支持向量機或內(nèi)核化的PCA之類的內(nèi)核方法依賴于再現(xiàn)內(nèi)核Hilbert空間的屬性。對于任何正定核函數(shù)(即所謂的Mercer內(nèi)核),可以確保存在映射進入希爾伯特空間 ,如下

其中 ??,?? 表示希爾伯特空間中的內(nèi)積。

如果一個算法(例如線性支持向量機或PCA)僅依賴于數(shù)據(jù)點的標量積,則可以使用的值,這對應于將算法應用于映射的數(shù)據(jù)點 。使用 的優(yōu)勢在于無需顯式計算映射 ,從而允許任意大特征(甚至無限大)。

內(nèi)核方法的一個缺點是,在優(yōu)化過程中可能有必要存儲許多內(nèi)核值。如果將內(nèi)核分類器應用于新數(shù)據(jù),則需要進行計算 以做出預測,可能是針對訓練集中許多不同的 。

該子模塊中的類允許近似嵌入,從而與 一起顯式生效,從而無需應用內(nèi)核或存儲訓練示例。

參考文獻:

RR2007(1,2)

“Random features for large-scale kernel machines” Rahimi, A. and Recht, B. - Advances in neural information processing 2007,

LS2010

“Random Fourier approximations for skewed multiplicative histogram kernels” Random Fourier approximations for skewed multiplicative histogram kernels - Lecture Notes for Computer Sciencd (DAGM)

VZ2010(1,2)

“Efficient additive kernels via explicit feature maps” Vedaldi, A. and Zisserman, A. - Computer Vision and Pattern Recognition 2010

VVZ2010

“Generalized RBF feature maps for Efficient Detection” Vempati, S. and Vedaldi, A. and Zisserman, A. and Jawahar, CV - 2010


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號