Linear Models 在 scikit-learn 中介绍

The following are a set of methods intended for regression in which the target value is expected to be a linear combination of the features. In mathematical notation, if \(\hat{y}\) is the predicted value.

\(\hat{y}(w,x) = w_0 ​+ w_1 ​x_1 ​+ w_2 ​x_2 ​+ ⋯ + w_p ​x_p​\)
Across the module, we designate the vector \(w = (w_1, w_2, ..., w_p)\) as coef_ and \(w_0\) as intercept_.

To perform classification with generalized linear models, see Logistic regression.

coef_ 和 intercept_ 的命名规范

在机器学习库(尤其是 Scikit-learn)中,在属性名后添加下划线 _ 是一种通用的命名约定,用来表示该属性是在模型训练(拟合,即调用 fit() 方法)后才可用的。

简单来说,这个下划线是告诉使用者:

  1. 它是一个训练结果: 这些值不是模型初始化时设定的,而是通过从数据中学习得到的。例如,线性回归模型的系数 coef_ 和截距 intercept_ 都是在 fit() 之后才计算出来的。
  2. 它不是一个可设置的参数: 你不能在创建模型时直接传入这些值。相反,你需要先用数据训练模型,这些值才会自动生成。

这种命名方式有助于开发者和用户区分模型的超参数(可以在初始化时设定的参数,如 learning_rate)和训练结果(通过学习数据得到的参数,如 coef_)。这是一种清晰且一致的编程习惯,能避免混淆,让代码更易于理解和使用。

coef_ 和 intercept_ 的含义

在本模块中,我们将向量 \(w = (w_1, w_2, ..., w_p)\) 指定为 coef_,将 \(w_0\) 指定为 intercept_


coef_intercept_ 的含义

这两个术语通常用于线性回归(Linear Regression)或类似模型的机器学习库(如 Scikit-learn)中,它们代表了模型训练后学习到的参数系数

  • coef_ (Coefficients):

    • 这个词是 "coefficients"(系数)的缩写,通常指代一个向量 \(w = (w_1, w_2, ..., w_p)\)
    • 向量中的每个元素 \(w_i\) 对应于模型中的一个特征(feature)。
    • 它的值表示该特征对预测结果的影响程度。例如,在预测房价时,如果“卧室数量”对应的系数 \(w_i\) 较大,说明卧室数量对房价的影响很大。
  • intercept_ (Intercept):

    • 这个词是 "intercept"(截距)的缩写,通常指代一个单独的数值 \(w_0\)
    • 它代表当所有特征的值都为零时,模型的预测结果。
    • 在图形上,它可以被理解为回归线与纵轴的交点。

二者如何共同作用

这两个参数共同构成了线性模型的核心。用数学公式表示,模型的预测值 \(\hat{y}\) 可以写成:

\(\hat{y} = w_0 + w_1x_1 + w_2x_2 + \dots + w_px_p\)

其中:

  • \(w_0\) 就是 intercept_
  • \((w_1, w_2, ..., w_p)\) 就是 coef_
  • \((x_1, x_2, ..., x_p)\) 是输入的特征向量。

简单来说,coef_ 告诉你每个特征的重要性,而 intercept_ 则为你提供了一个基准值。

posted @ 2025-09-06 16:52  立体风  阅读(10)  评论(0)    收藏  举报