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() 方法)后才可用的。
简单来说,这个下划线是告诉使用者:
- 它是一个训练结果: 这些值不是模型初始化时设定的,而是通过从数据中学习得到的。例如,线性回归模型的系数
coef_和截距intercept_都是在fit()之后才计算出来的。 - 它不是一个可设置的参数: 你不能在创建模型时直接传入这些值。相反,你需要先用数据训练模型,这些值才会自动生成。
这种命名方式有助于开发者和用户区分模型的超参数(可以在初始化时设定的参数,如 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_ 则为你提供了一个基准值。

浙公网安备 33010602011771号