参考:
相关定义
线性回归(Linear Regression)通过学习一个线性回归方程来尽可能准确预测结果的回归方法。
最小二乘法(least square)基于均方误差最小化来进行模型求解的方法。
归纳偏好(inductive bias):实际问题中经常面临很大的假设空间,机器学习算法在学习过程中对某种类型假设的偏好称为归纳偏好。
奥卡姆的剃刀,引导算法确立“正确性”偏好的一般性原则,即“若有多个假设与观察一致,则选择最简单的一个”。
泛化能力(generalization):模型适应新样本的能力。
正则化(regularization)为了防止过拟合,提高模型的泛化能力,对模型的损失函数进行约束,以减小特征变量的数量级。
梯度下降法:一种求局部最优解的方法,对于F(x),在a点的梯度是F(x)增长最快的方向,那么它的相反方向则是该点下降最快的方向。使用梯度下降法时应注意对数据进行归一化处理。
模型描述
给定线性回归训练集 ,我们试图得到线性回归方程:
使得
其中,X为特征空间,
,
期望最小化均方误差,可以得到:
令,则对 进行求导可得:
导数为 0 的解即为 的最优解。
此处缺少概率层面解释目标函数的可行性
求解算法
根据 是否为满秩矩阵或正定矩阵,分为两种解法:
- 为满秩矩阵:,可得
- 矩阵不满秩,采用梯度下降法求解。
梯度下降法
算法:
输入:训练样本 , 梯度步长;
输出:最优的 取值。
随机对 进行初始化;
沿着负梯度方向进行迭代,更新后的 使 更小 :
对步骤 2 中的每个进行求导可以得到
每次更新变量,采用所有样本进行计算并相加的方法,称为批量梯度下降法;
每次更新变量,随机选择单个样本的方法,称为随机梯度下降法。
sklearn 参数整理
class sklearn.linear_model.``LinearRegression
(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)[source]
普通最小二乘线性回归:
参数 | 解释 | 备注 |
---|---|---|
fit_intercept | boolean,可选,默认 True 是否计算模型的截距,如果设置为 False,计算将不使用截距(即:期望数据已经进行了中心化处理) |
|
normalize | boolean, 可选, 默认 False fit_intercept 设置为 False 时,这个参数可以忽略。如果设置为 True,回归之前将通过减去均值并除l2范数进行归一化。如果需要进行标准化,请在调用估计器 normalize=False的 fit 函数之前使用 sklearn.preprocessing.StandardScaler 。 |
|
copy_X | boolean, optional, default True 如果为 True,将备份 X,否则将覆盖X。 |
|
n_jobs: | int 或 None, 可选 (default=None) 计算使用的处理器个数,如果 n_tragets>1将会加速,对于规模较大的问题效率更高。除了在 joblib.parallel_backend 之外 None 表示 1,-1 表示使用所有处理器 。详细内容见Glossary. |
|
属性 | 解释 | 备注 |
---|---|---|
coef_ | array, shape (n_features, ) or (n_targets, n_features) 线性回归问题得到的参数。如果在拟合过程中传入多目标(y 2D),那么格式为(n_targets,n_features)的2维数组。如果只传入一个目标,那么是长度为n_features 的一维数组。 |
|
intercept_ | array 线性模型的截距项。 |
|