线性回归理论部分

本文介绍了线性回归的基本原理,包括模型假设、损失函数定义及如何使用梯度下降法求解最优参数。通过实例展示了单特征与多特征情况下的线性模型。

一、线性回归

1 假设一个模型函数,初始化函数的参数

2 根据损失函数计算预测值与真实值的差值,求取使得损失函数最小值的参数

线性回归是由训练集得到一个映射关系,当给定待测样本X时,可以通过映射关系得到预测值y

X为特征向量,也为输出值

当X中只有一个特征值时,即X={X1} 学习到的线性模型


当X存在n个特征值时,这时学习到的模型为

X={1,x1,x2,...,xn}

二、损失函数

 为了得到线性模型hθ (X),需要获得特征系数矩阵

θ={θ0,θ1,...,θn

 计算特征系数,依靠损失函数


三、梯度下降法求解

 在上面,找到了一个特征系数向量θ好坏的利用损失函数 J(θ)表示的是预测值与真实值的差值,当损失函数最小时,

预测值与真实值最接近,即线性拟合最好。

 损失函数是关于θ的函数最小的时候,此时取得的特征系数θ为模型的系数。

 梯度下降就是一个不断地最小化损失函数的过程。


 从图像上看,先初始化 θi为某个值,然后让θi沿着J(θ)θi的偏导方向不断地走,直到走到底部收敛为止,

最后可以得到J(θ)最小时的θi的值。

 这个不断迭代的过程犹如一个不断下山的过程,我们可以得到图中关于θi的迭代函数,α长。

参考:线性回归



### 多元线性回归理论详解 #### 数学模型公式 多元线性回归的目标是建立一个线性方程来描述多个自变量 \(X_1, X_2, \ldots, X_p\) 对应于因变量 \(Y\) 的变化关系。该模型可以表示为: \[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \cdots + \beta_pX_p + \epsilon \] 其中,\(Y\) 是因变量,\(X_i (i=1,\dots,p)\) 表示各个自变量,\(\beta_0\) 是截距项,\(\beta_i (i=1,\dots,p)\) 是各自变量对应的系数,而 \(\epsilon\) 则代表随机误差[^1]。 为了估计这些参数,通常采用最小二乘法(OLS),即寻找使残差平方和最小的一组参数值。具体而言,目标是最小化下述函数: \[ SSE = \sum_{i=1}^{n}(y_i - (\beta_0 + \beta_1x_{i1} + \beta_2x_{i2} + \cdots + \beta_px_{ip}))^2 \] 这里 \(n\) 为样本数量,\(y_i\) 和 \(x_{ij}\) 分别对应第 \(i\) 个观测中的因变量和各自变量取值[^1]。 #### 多重共线性的检测与处理 在实际应用中,可能存在某些自变量之间高度相关的情况,这被称为多重共线性。它会使得回归系数的估计变得不稳定,并可能导致错误结论。为此引入了两个指标:容忍度(Tolerance)以及方差膨胀因子(Variance Inflation Factor, VIF)。 - **容忍度**定义为某自变量与其他所有自变量做回归后的 R² 值之补数,即 Tolerance = 1-R²。当容忍度低于 0.1,则表明存在显著的多重共线性问题。 - **VIF**则是容忍度的倒数,因此如果某个自变量的 VIF 超过 10,则同样提示可能存在问题[^2]。 #### 正则化的概念及其作用 为了避免过度拟合数据集或者解决高维空间下的计算难题,在传统多元线性回归基础上增加了惩罚项形成新的优化目标函数。常见的两种形式分别是 L1 正则化(也叫拉普拉斯先验或绝对值收缩)、L2 正则化(岭回归或二次范数约束)。特别是对于 L1 正则化来说,由于其等值面形状特殊往往能够迫使部分权重降为零从而实现自动特征选择的效果;相比之下,尽管 L2 不具备这种能力但它有助于平滑解向量减少波动幅度[^3]。 ```python from sklearn.linear_model import Ridge, Lasso import numpy as np # Example of applying regularization techniques using scikit-learn library. X = [[0], [1], [2]] y = [0, 1, 2] ridge_reg = Ridge(alpha=.5) lasso_reg = Lasso(alpha=.1) ridge_reg.fit(X, y) lasso_reg.fit(X, y) print("Ridge coefficients:", ridge_reg.coef_) print("Lasso coefficients:", lasso_reg.coef_) ``` 上述代码展示了如何利用 Python 中 `scikit-learn` 库分别实施岭回归(L2正则化)及套索回归(L1正则化),帮助理解不同类型的正则化技术对最终结果的影响差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值