# 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)使用 ![\epsilon](https://box.kancloud.cn/3ec5a738819e1e6501032891d360ef4a_7x8.jpg)-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 只使用了百分之三十的数据点做为支撑向量。
[![http://sklearn.apachecn.org/cn/0.19.0/_images/sphx_glr_plot_kernel_ridge_regression_0011.png](https://box.kancloud.cn/8987ad93a8aaa849300f0c95ab9e072c_566x424.jpg)](../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` 的参数 ![\epsilon](https://box.kancloud.cn/3ec5a738819e1e6501032891d360ef4a_7x8.jpg) 和 ![C](https://box.kancloud.cn/95378f1036b3ba9a15a5f33f8521b6f2_14x12.jpg) ; ![\epsilon = 0](https://box.kancloud.cn/1d39401db3e7c8edaefa7037c6982b26_40x12.jpg) 将对应于密集模型。
[![http://sklearn.apachecn.org/cn/0.19.0/_images/sphx_glr_plot_kernel_ridge_regression_0021.png](https://box.kancloud.cn/3b3e03463a3d4b032cf78ea2e98e2497_566x424.jpg)](../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)
- 外部资源,视频和谈话