# 1.3. 內核嶺回歸
校驗者:
[@不吃曲奇的趣多多](https://github.com/apachecn/scikit-learn-doc-zh)
翻譯者:
[@Counting stars](https://github.com/apachecn/scikit-learn-doc-zh)
Kernel ridge regression (KRR) (內核嶺回歸)\[M2012\]\_ 由 使用內核方法的 :ref:[`](#id2)ridge\_regression`(嶺回歸)(使用 l2 正則化的最小二乘法)所組成。因此,它所學習到的在空間中不同的線性函數是由不同的內核和數據所導致的。對于非線性的內核,它與原始空間中的非線性函數相對應。
由 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 學習的模型的形式與支持向量回歸( `SVR` ) 是一樣的。但是他們使用不同的損失函數:內核嶺回歸(KRR)使用 squared error loss (平方誤差損失函數)而 support vector regression (支持向量回歸)(SVR)使用 -insensitive loss ( ε-不敏感損失 ),兩者都使用 l2 regularization (l2 正則化)。與 `SVR` 相反,擬合 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 可以以 closed-form (封閉形式)完成,對于中型數據集通常更快。另一方面,學習的模型是非稀疏的,因此比 SVR 慢, 在預測時間,SVR 學習了:math:epsilon > 0 的稀疏模型。
下圖比較了人造數據集上的 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 和 `SVR` 的區別,它由一個正弦目標函數和每五個數據點產生一個強噪聲組成。圖中分別繪制了由 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 和 `SVR` 學習到的回歸曲線。兩者都使用網格搜索優化了 RBF 內核的 complexity/regularization (復雜性/正則化)和 bandwidth (帶寬)。它們的 learned functions (學習函數)非常相似;但是,擬合 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 大約比擬合 `SVR` 快七倍(都使用 grid-search ( 網格搜索 ) )。然而,由于 SVR 只學習了一個稀疏模型,所以 SVR 預測 10 萬個目標值比使用 KernelRidge 快三倍以上。SVR 只使用了百分之三十的數據點做為支撐向量。
[](../auto_examples/plot_kernel_ridge_regression.html)
下圖顯示不同大小訓練集的 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 和 `SVR` 的 fitting (擬合)和 prediction (預測)時間。 對于中型訓練集(小于 1000 個樣本),擬合 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 比 `SVR` 快; 然而,對于更大的訓練集 `SVR` 通常更好。 關于預測時間,由于學習的稀疏解,`SVR` 對于所有不同大小的訓練集都比 [`KernelRidge`](generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge "sklearn.kernel_ridge.KernelRidge") 快。 注意,稀疏度和預測時間取決于 `SVR` 的參數  和  ;  將對應于密集模型。
[](../auto_examples/plot_kernel_ridge_regression.html)
參考:
\[M2012\]“Machine Learning: A Probabilistic Perspective” Murphy, K. P. - chapter 14.4.3, pp. 492-493, The MIT Press, 2012
- scikit-learn 0.19 中文文檔
- 用戶指南
- 1. 監督學習
- 1.1. 廣義線性模型
- 1.2. 線性和二次判別分析
- 1.3. 內核嶺回歸
- 1.4. 支持向量機
- 1.5. 隨機梯度下降
- 1.6. 最近鄰
- 1.7. 高斯過程
- 1.8. 交叉分解
- 1.9. 樸素貝葉斯
- 1.10. 決策樹
- 1.11. 集成方法
- 1.12. 多類和多標簽算法
- 1.13. 特征選擇
- 1.14. 半監督學習
- 1.15. 等式回歸
- 1.16. 概率校準
- 1.17. 神經網絡模型(有監督)
- 2. 無監督學習
- 2.1. 高斯混合模型
- 2.2. 流形學習
- 2.3. 聚類
- 2.4. 雙聚類
- 2.5. 分解成分中的信號(矩陣分解問題)
- 2.6. 協方差估計
- 2.7. 經驗協方差
- 2.8. 收斂協方差
- 2.9. 稀疏逆協方差
- 2.10. Robust 協方差估計
- 2.11. 新奇和異常值檢測
- 2.12. 密度估計
- 2.13. 神經網絡模型(無監督)
- 3. 模型選擇和評估
- 3.1. 交叉驗證:評估估算器的表現
- 3.2. 調整估計器的超參數
- 3.3. 模型評估: 量化預測的質量
- 3.4. 模型持久化
- 3.5. 驗證曲線: 繪制分數以評估模型
- 4. 數據集轉換
- 4.1. Pipeline(管道)和 FeatureUnion(特征聯合): 合并的評估器
- 4.2. 特征提取
- 4.3. 預處理數據
- 4.4. 無監督降維
- 4.5. 隨機投影
- 4.6. 內核近似
- 4.7. 成對的矩陣, 類別和核函數
- 4.8. 預測目標 (y) 的轉換
- 5. 數據集加載工具
- 6. 大規模計算的策略: 更大量的數據
- 7. 計算性能
- 教程
- 使用 scikit-learn 介紹機器學習
- 關于科學數據處理的統計學習教程
- 機器學習: scikit-learn 中的設置以及預估對象
- 監督學習:從高維觀察預測輸出變量
- 模型選擇:選擇估計量及其參數
- 無監督學習: 尋求數據表示
- 把它們放在一起
- 尋求幫助
- 處理文本數據
- 選擇正確的評估器(estimator)
- 外部資源,視頻和談話