文章目錄
內核嶺迴歸(Kernel ridge regression-KRR) 由使用內核方法的嶺迴歸(使用 l2
正則化的最小二乘法)所組成。因此,它所擬合到的在空間中不同的線性函數是由不同的內核和數據所導致的。對於非線性的內核,它與原始空間中的非線性函數相對應。
由 KernelRidge
學習的模型的形式與支持向量迴歸(SVR
是一樣的。但是他們使用不同的損失函數: 內核嶺迴歸(KRR)使用平方誤差損失函數(squared error loss) 而支持向量迴歸(support vector regression)(SVR)使用 -insensitive loss ( -不敏感損失 ),兩者都使用 l2
正則化。與SVR
相反,擬合 KernelRidge
可以以封閉形式(closed-form) 完成,對於中型數據集通常更快。另一方面,學習的模型是非稀疏的,因此比 SVR
慢。在預測時間內,SVR
擬合的是 的稀疏模型。
下圖比較了人造數據集上的 KernelRidge
和 SVR
的區別,它由一個正弦目標函數和每五個數據點產生一個強噪聲組成。圖中分別繪製了由 KernelRidge
和 SVR
學習到的迴歸曲線。兩者都使用網格搜索優化了 RBF
內核的複雜性/正則化(complexity/regularization )和帶寬(bandwidth)。它們的學習函數(learned functions) 非常相似;但是,擬合 KernelRidge
大約比擬合 SVR
快七倍(都使用網格搜索(grid-search))。然而,由於 SVR
只學習了一個稀疏模型,所以 SVR
預測 10 萬個目標值比使用 KernelRidge
快三倍以上。SVR
只使用了大約 1/3 的數據點做爲支撐向量。
下圖顯示不同大小訓練集的 KernelRidge
和 SVR
的擬合(fitting)和預測(prediction) 時間。 對於中型訓練集(小於 1000 個樣本),擬合 KernelRidge
比 SVR
快;然而,對於更大的訓練集 SVR
通常更好。 關於預測時間,由於學習的稀疏解,SVR
對於所有不同大小的訓練集都比 KernelRidge
快。 注意,稀疏度和預測時間取決於 SVR
的參數 和 將對應於密集模型。
示例: 內核嶺迴歸與SVR的對比
參考: “Machine Learning: A Probabilistic Perspective” Murphy, K. P. - chapter 14.4.3, pp. 492-493, The MIT Press, 2012