核岭回归#
- class sklearn.kernel_ridge.KernelRidge(alpha=1, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None)[source]#
- 核岭回归。 - 核岭回归 (KRR) 将岭回归(带有 L2 范数正则化的线性最小二乘法)与核技巧相结合。因此,它学习由相应的核和数据引起的空間中的线性函数。对于非线性核,这对应于原始空间中的非线性函数。 - KRR学习到的模型形式与支持向量回归 (SVR) 相同。但是,它们使用了不同的损失函数:KRR 使用平方误差损失,而支持向量回归使用ε-不敏感损失,两者都结合了 l2 正则化。与 SVR 相比,拟合 KRR 模型可以用闭式解求解,并且对于中等大小的数据集通常更快。另一方面,学习到的模型是非稀疏的,因此在预测时比 SVR(对于 ε > 0 学习稀疏模型)慢。 - 此估计器内置支持多元回归(即,当 y 是形状为 [n_samples, n_targets] 的二维数组时)。 - 更多信息请参见 用户指南。 - 参数:
- alpha浮点数或形状为 (n_targets,) 的类数组,默认为 1.0
- 正则化强度;必须是正浮点数。正则化改善问题的条件并减少估计值的方差。较大的值指定更强的正则化。Alpha 对应于其他线性模型(如 - LogisticRegression或- LinearSVC)中的- 1 / (2C)。如果传递数组,则假定惩罚特定于目标。因此,它们的个数必须对应。有关公式,请参见 岭回归和分类。
- kernel字符串或可调用对象,默认为“linear”
- 内部使用的核映射。此参数直接传递给 - pairwise_kernels。如果- kernel是字符串,则它必须是- pairwise.PAIRWISE_KERNEL_FUNCTIONS中的度量之一或“precomputed”。如果- kernel是“precomputed”,则假定 X 是核矩阵。或者,如果- kernel是可调用函数,则它会在每一对实例(行)上调用,并将结果值记录下来。可调用对象应将 X 中的两行作为输入,并将相应的核值作为单个数字返回。这意味着不允许使用- sklearn.metrics.pairwise中的可调用对象,因为它们作用于矩阵,而不是单个样本。请改用标识核的字符串。
- gamma浮点数,默认为 None
- 用于 RBF、拉普拉斯、多项式、指数 χ² 和 sigmoid 核的 Gamma 参数。默认值的解释留给核函数;请参见 sklearn.metrics.pairwise 的文档。其他核函数忽略此参数。 
- degree浮点数,默认为 3
- 多项式核的度数。其他核函数忽略此参数。 
- coef0浮点数,默认为 1
- 多项式和 sigmoid 核的零系数。其他核函数忽略此参数。 
- kernel_params字典,默认为 None
- 作为可调用对象传递的核函数的其他参数(关键字参数)。 
 
- 属性:
- dual_coef_形状为 (n_samples,) 或 (n_samples, n_targets) 的 ndarray
- 核空间中权重向量(矢量)的表示 
- X_fit_形状为 (n_samples, n_features) 的 {ndarray,稀疏矩阵}
- 训练数据,预测也需要此数据。如果 kernel == “precomputed”,则改为形状为 (n_samples, n_samples) 的预计算训练矩阵。 
- n_features_in_整数
- 在 拟合 期间看到的特征数量。 - 在 0.24 版本中添加。 
- feature_names_in_形状为 (n_features_in_,) 的 ndarray
- 在 拟合 期间看到的特征名称。仅当 - X具有全是字符串的特征名称时才定义。- 在 1.0 版本中添加。 
 
 - 另请参见 - sklearn.gaussian_process.GaussianProcessRegressor
- 高斯过程回归器,提供自动核超参数调整和预测不确定性。 
- sklearn.linear_model.Ridge
- 线性岭回归。 
- sklearn.linear_model.RidgeCV
- 具有内置交叉验证的岭回归。 
- sklearn.svm.SVR
- 支持向量回归,接受各种各样的核函数。 
 - 参考文献 - Kevin P. Murphy “机器学习:概率视角”,麻省理工学院出版社第 14.4.3 章,第 492-493 页 
 - 示例 - >>> from sklearn.kernel_ridge import KernelRidge >>> import numpy as np >>> n_samples, n_features = 10, 5 >>> rng = np.random.RandomState(0) >>> y = rng.randn(n_samples) >>> X = rng.randn(n_samples, n_features) >>> krr = KernelRidge(alpha=1.0) >>> krr.fit(X, y) KernelRidge(alpha=1.0) - fit(X, y, sample_weight=None)[source]#
- 拟合核岭回归模型。 - 参数:
- X形状为 (n_samples, n_features) 的 {类数组,稀疏矩阵}
- 训练数据。如果 kernel == “precomputed”,则改为形状为 (n_samples, n_samples) 的预计算核矩阵。 
- y形状为 (n_samples,) 或 (n_samples, n_targets) 的类数组
- 目标值。 
- sample_weight浮点数或形状为 (n_samples,) 的类数组,默认为 None
- 每个样本的个体权重,如果传递 None 则忽略。 
 
- 返回值:
- self对象
- 返回实例本身。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看 用户指南,了解路由机制的工作原理。 - 返回值:
- routingMetadataRequest
- 封装路由信息的 - MetadataRequest。
 
 
 - get_params(deep=True)[source]#
- 获取该估计器的参数。 - 参数:
- deep布尔值,默认为True
- 如果为 True,则将返回此估计器及其包含的子对象(也是估计器)的参数。 
 
- 返回值:
- params字典
- 参数名称与其值的映射。 
 
 
 - predict(X)[source]#
- 使用核岭回归模型进行预测。 - 参数:
- X形状为 (n_samples, n_features) 的 {类数组,稀疏矩阵}
- 样本。如果 kernel == “precomputed”,则它是一个预计算的核矩阵,形状为 [n_samples, n_samples_fitted],其中 n_samples_fitted 是此估计器拟合中使用的样本数。 
 
- 返回值:
- C形状为 (n_samples,) 或 (n_samples, n_targets) 的ndarray
- 返回预测值。 
 
 
 - score(X, y, sample_weight=None)[source]#
- 返回预测的决定系数。 - 决定系数 \(R^2\) 定义为 \((1 - \frac{u}{v})\),其中 \(u\) 是残差平方和 - ((y_true - y_pred)** 2).sum(),而 \(v\) 是总平方和- ((y_true - y_true.mean()) ** 2).sum()。最佳分数为 1.0,也可能为负值(因为模型可以任意差)。一个始终预测- y期望值的常数模型(忽略输入特征)将获得 0.0 的 \(R^2\) 分数。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 测试样本。对于某些估计器,这可能是一个预计算的核矩阵,或者是一个形状为 - (n_samples, n_samples_fitted)的泛型对象列表,其中- n_samples_fitted是估计器拟合中使用的样本数。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
- X的真实值。
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
- 样本权重。 
 
- 返回值:
- score浮点数
- self.predict(X)关于- y的 \(R^2\)。
 
 - 注释 - 从 0.23 版本开始,在回归器上调用 - score时使用的 \(R^2\) 分数使用- multioutput='uniform_average',以保持与- r2_score的默认值一致。这会影响所有多输出回归器的- score方法(- MultiOutputRegressor除外)。
 - set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[source]#
- 请求传递给 - fit方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时(请参阅- sklearn.set_config)此方法才相关。请参阅 用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,如果提供则传递给- fit。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- fit。
- None:不请求元数据,如果用户提供元数据,则元估计器将引发错误。
- str:元数据应使用此给定的别名而不是原始名称传递给元估计器。
 - 默认值 ( - sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求,而不会更改其他参数的请求。- 1.3 版本中新增。 - 注释 - 此方法仅当该估计器用作元估计器的子估计器时才相关,例如,在 - Pipeline中使用。否则,它无效。- 参数:
- sample_weightstr、True、False 或 None,默认值=sklearn.utils.metadata_routing.UNCHANGED
- fit方法中- sample_weight参数的元数据路由。
 
- 返回值:
- self对象
- 更新后的对象。 
 
 
 - set_params(**params)[source]#
- 设置此估计器的参数。 - 此方法适用于简单的估计器以及嵌套对象(例如 - Pipeline)。后者具有- <component>__<parameter>形式的参数,因此可以更新嵌套对象的每个组件。- 参数:
- **paramsdict
- 估计器参数。 
 
- 返回值:
- self估计器实例
- 估计器实例。 
 
 
 - set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[source]#
- 请求传递给 - score方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时(请参阅- sklearn.set_config)此方法才相关。请参阅 用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,如果提供则将其传递给- score。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- score。
- None:不请求元数据,如果用户提供元数据,则元估计器将引发错误。
- str:元数据应使用此给定的别名而不是原始名称传递给元估计器。
 - 默认值 ( - sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求,而不会更改其他参数的请求。- 1.3 版本中新增。 - 注释 - 此方法仅当该估计器用作元估计器的子估计器时才相关,例如,在 - Pipeline中使用。否则,它无效。- 参数:
- sample_weightstr、True、False 或 None,默认值=sklearn.utils.metadata_routing.UNCHANGED
- score方法中- sample_weight参数的元数据路由。
 
- 返回值:
- self对象
- 更新后的对象。 
 
 
 
 
     
 
