机器学习之线性回归
文章目录
1 线性回归基本概念
线性回归是一种用于预测连续数值的监督学习算法,它通过找到特征与目标值之间的线性关系来进行预测。
简单来说,就是用一条直线(或平面/超平面)来拟合数据点,使得预测值与实际值之间的差距最小。
现实中的例子:
- 房地产:根据房屋面积、房间数量、地理位置预测房价
- 金融:根据工资、年龄、信用记录预测贷款额度
- 商业:根据广告投入、季节因素预测产品销量
- 医疗:根据年龄、体重、生活习惯预测血压值
1.1 银行信贷例子
# 示例数据:客户信息与贷款额度
import pandas as pd
data = {
'客户ID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'月薪(元)': [4000, 8000, 5000, 12000, 6000, 9000, 7000, 3000, 10000, 5500],
'年龄': [25, 30, 28, 35, 32, 40, 29, 26, 38, 31],
'工作年限': [2, 8, 5, 12, 6, 15, 7, 1, 10, 4],
'实际贷款额度(元)': [20000, 70000, 35000, 150000, 50000, 180000, 60000, 15000, 130000, 40000]
}
df = pd.DataFrame(data)
print(df)
在这个例子中:
- 特征(输入变量):月薪、年龄、工作年限
- 标签(输出变量):贷款额度
- 目标:建立一个数学模型,能够根据客户的月薪、年龄和工作年限,准确预测银行应批准的贷款额度
2 数学模型
2.1 基本公式
对于有2个特征的情况:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2
hθ(x)=θ0+θ1x1+θ2x2
其中:
-
h θ ( x ) h_{\theta}(x) hθ(x):预测值(银行贷款额度)
-
θ 0 \theta_0 θ0:偏置项(截距)
-
θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2:特征权重参数
-
x 1 , x 2 x_1, x_2 x1,x2:特征值(工资、年龄)
对于有n个特征的一般情况:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
⋯
+
θ
n
x
n
h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn
向量化表示:
- 添加 x 0 = 1 x_0 = 1 x0=1(偏置项对应项)
- 定义参数向量: θ = [ θ 0 , θ 1 , θ 2 , ⋯ , θ n ] T \theta = [\theta_0, \theta_1, \theta_2, \cdots, \theta_n]^T θ=[θ0,θ1,θ2,⋯,θn]T
- 定义特征向量: x = [ 1 , x 1 , x 2 , ⋯ , x n ] T x = [1, x_1, x_2, \cdots, x_n]^T x=[1,x1,x2,⋯,xn]T
- 预测公式简化为: h θ ( x ) = θ T x h_\theta(x) = \theta^T x hθ(x)=θTx
2.2 矩阵形式(多个样本)
当有m个训练样本时:
X = [ 1 x 1 ( 1 ) x 2 ( 1 ) ⋯ x n ( 1 ) 1 x 1 ( 2 ) x 2 ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 x 1 ( m ) x 2 ( m ) ⋯ x n ( m ) ] , y = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] , θ = [ θ 0 θ 1 ⋮ θ n ] X = \begin{bmatrix} 1 & x_1^{(1)} & x_2^{(1)} & \cdots & x_n^{(1)} \\ 1 & x_1^{(2)} & x_2^{(2)} & \cdots & x_n^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_1^{(m)} & x_2^{(m)} & \cdots & x_n^{(m)} \end{bmatrix}, \quad y = \begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \end{bmatrix}, \quad \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} X= 11⋮1x1(1)x1(2)⋮x1(m)x2(1)x2(2)⋮x2(m)⋯⋯⋱⋯xn(1)xn(2)⋮xn(m) ,y= y(1)y(2)⋮y(m) ,θ= θ0θ1⋮θn
预测值向量: h θ ( X ) = X θ h_\theta(X) = X\theta hθ(X)=Xθ
3 误差分析与目标函数
3.1 误差的统计假设
在现实中,我们的预测很难完全准确,总会存在误差:
y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)} = \theta^{T} x^{(i)} + \varepsilon^{(i)} y(i)=θTx(i)+ε(i)
其中 ε ( i ) \varepsilon^{(i)} ε(i)是第i个样本的误差项。
为什么假设误差服从高斯分布?
- 中心极限定理:许多微小随机因素的综合影响
- 数学处理的便利性
- 实际数据中常见
误差的高斯分布假设: ε ( i ) ∼ N ( 0 , σ 2 ) \varepsilon^{(i)} \sim N(0, \sigma^2) ε(i)∼N(0,σ2)
这意味着误差以0为中心,呈钟形分布。
3.2 从最大似然到最小二乘
最大似然估计思想:找到最有可能产生观测数据的参数值。
推导过程:
- 由误差假设: y ( i ) ∣ x ( i ) ; θ ∼ N ( θ T x ( i ) , σ 2 ) y^{(i)}|x^{(i)};\theta \sim N(\theta^T x^{(i)}, \sigma^2) y(i)∣x(i);θ∼N(θTx(i),σ2)
- 似然函数: L ( θ ) = ∏ i = 1 m 1 2 π σ exp ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) L(\theta) = \prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(y^{(i)} - \theta^T x^{(i)})^2}{2\sigma^2}\right) L(θ)=∏i=1m2πσ1exp(−2σ2(y(i)−θTx(i))2)
- 对数似然: ℓ ( θ ) = m log 1 2 π σ − 1 2 σ 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \ell(\theta) = m\log\frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{2\sigma^2}\sum_{i=1}^m (y^{(i)} - \theta^T x^{(i)})^2 ℓ(θ)=mlog2πσ1−2σ21∑i=1m(y(i)−θTx(i))2
- 最大化 ℓ ( θ ) \ell(\theta) ℓ(θ)等价于最小化 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \sum_{i=1}^m (y^{(i)} - \theta^T x^{(i)})^2 ∑i=1m(y(i)−θTx(i))2
最小二乘目标函数:
J
(
θ
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta) = \frac{1}{2m}\sum_{i=1}^m\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)^2
J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
注意:
- 除以 m m m是为了得到平均误差
- 乘以 1 / 2 1/2 1/2是为了后续求导时消去系数2
- 目标:找到使 J ( θ ) J(\theta) J(θ)最小的参数 θ \theta θ
4 参数求解方法
4.1 正规方程法(解析解)
推导过程:
- 目标函数: J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2}(X\theta - y)^T(X\theta - y) J(θ)=21(Xθ−y)T(Xθ−y)
- 对 θ \theta θ求导: ∂ J ( θ ) ∂ θ = X T ( X θ − y ) \frac{\partial J(\theta)}{\partial\theta} = X^T(X\theta - y) ∂θ∂J(θ)=XT(Xθ−y)
- 令导数为0: X T ( X θ − y ) = 0 X^T(X\theta - y) = 0 XT(Xθ−y)=0
- 解得: θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1} X^T y θ=(XTX)−1XTy
4.2 梯度下降法(迭代求解)
三种梯度下降方法对比:
| 方法 | 更新公式 | 优点 | 缺点 |
|---|---|---|---|
| 批量梯度下降 | θ j ′ = θ j + 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i \theta_j' = \theta_j + \frac{1}{m}\sum_{i=1}^{m}(y^{i}-h_{\theta}(x^{i})) x_j^{i} θj′=θj+m1∑i=1m(yi−hθ(xi))xji | 收敛稳定 | 速度慢 |
| 随机梯度下降 | θ j ′ = θ j + ( y i − h θ ( x i ) ) x j i \theta_j' = \theta_j + (y^{i}-h_{\theta}(x^{i})) x_j^{i} θj′=θj+(yi−hθ(xi))xji | 速度快 | 震荡大 |
| 小批量梯度下降 | θ j = θ j − α 1 b ∑ k = i i + b − 1 ( h θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j = \theta_j - \alpha\frac{1}{b}\sum_{k=i}^{i+b-1}(h_\theta(x^{(k)})-y^{(k)})x_j^{(k)} θj=θj−αb1∑k=ii+b−1(hθ(x(k))−y(k))xj(k) | 平衡效率与稳定性 | 需要调参 |
4.3 梯度下降关键参数
-
学习率( α \alpha α):步长大小,影响收敛速度
-
批处理大小:通常取32、64、128等
-
迭代次数:收敛条件
5 模型评估
5.1 决定系数R^2
决定系数(Coefficient of Determination),记作R²,是用于评估回归模型拟合优度的重要指标。它表示模型能够解释的目标变量变异性的比例。
R 2 = 1 − ∑ i = 1 m ( y ^ i − y i ) 2 ∑ i = 1 m ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^m\left(\hat{y}_i-y_i\right)^2}{\sum_{i=1}^m\left(y_i-\bar{y}\right)^2} R2=1−∑i=1m(yi−yˉ)2∑i=1m(y^i−yi)2
解释:
- R^2越接近1,模型拟合越好
- 表示模型解释的目标变量变异性的比例
5.2 核心公式
R 2 = 1 − ∑ i = 1 m ( y ^ i − y i ) 2 ∑ i = 1 m ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^m(\hat{y}_i - y_i)^2}{\sum_{i=1}^m(y_i - \bar{y})^2} R2=1−∑i=1m(yi−yˉ)2∑i=1m(y^i−yi)2
其中:
- y ^ i \hat{y}_i y^i:第i个样本的预测值
- y i y_i yi:第i个样本的实际值
- y ˉ \bar{y} yˉ:所有实际值的平均值
- m m m:样本数量
5.3 R²的组成部分详解
5.3.1 分子:残差平方和(SSres)
SS r e s = ∑ i = 1 m ( y ^ i − y i ) 2 \text{SS}_{res} = \sum_{i=1}^m(\hat{y}_i - y_i)^2 SSres=i=1∑m(y^i−yi)2
含义:模型预测值与真实值之间的差异平方和
- 值越小,说明预测越准确
- 反映了模型未能解释的变异部分
5.3.2 分母:总平方和(SStot)
SS t o t = ∑ i = 1 m ( y i − y ˉ ) 2 \text{SS}_{tot} = \sum_{i=1}^m(y_i - \bar{y})^2 SStot=i=1∑m(yi−yˉ)2
含义:真实值与其平均值之间的差异平方和
- 反映了目标变量的总变异性
- 相当于"最朴素模型"(总是预测平均值)的误差
5.4 R²的直观理解
5.4.1 几何解释
把R²想象成:
- 总变异性 = 目标变量自身的波动程度
- 解释的变异性 = 模型能够说明的那部分波动
- 未解释的变异性 = 模型无法说明的剩余波动
R 2 = 解释的变异性 总变异性 = 1 − 未解释的变异性 总变异性 R^2 = \frac{\text{解释的变异性}}{\text{总变异性}} = 1 - \frac{\text{未解释的变异性}}{\text{总变异性}} R2=总变异性解释的变异性=1−总变异性未解释的变异性
5.4.2 类比理解
考试成绩的比喻:
- 总变异性:全班同学成绩的差异程度
- 解释变异性:通过学习时间、智商等因素能够解释的成绩差异
- R²:这些因素能够解释的成绩差异占总差异的比例
5.5 R²的取值范围和解释
5.5.1 取值范围
- 最佳情况:R² = 1
- 所有预测点都落在回归线上
- 模型完美拟合数据
- 最差情况:R² ≤ 0
- 模型预测效果不如直接使用平均值
- 在实际应用中很少出现负值
5.5.2 经验解释
| R²值范围 | 拟合效果评价 | 说明 |
|---|---|---|
| 0.9-1.0 | 极好 | 模型解释绝大部分变异 |
| 0.7-0.9 | 很好 | 模型解释大部分变异 |
| 0.5-0.7 | 一般 | 模型解释约一半变异 |
| 0.3-0.5 | 较差 | 模型解释能力有限 |
| 0.0-0.3 | 很差 | 模型几乎无解释能力 |
更多推荐
所有评论(0)