线性回归 (Linear Regression)
🎬 视频详解 (Video)
Section titled “🎬 视频详解 (Video)”📌 核心定义 (What)
Section titled “📌 核心定义 (What)”一句话定义:线性回归是一种监督学习算法,通过拟合一条直线(或超平面),来预测连续数值输出。
就像用尺子在散点图上画一条”最佳拟合线”,让所有点到这条线的距离之和最小。
🎨 交互演示 (Interactive)
Section titled “🎨 交互演示 (Interactive)”动手调整 权重 w 和 偏置 b,观察拟合线如何变化。点击”训练”让模型自动找到最优参数!
📈线性回归可视化
模型参数
权重 w0.50
偏置 b1.00
ŷ = 0.50x + 1.00
损失指标
MSE25.05
R²-1.149
📐 数学原理
模型:$\hat{y} = wx + b$
损失:$MSE = \frac{1}{n} \sum(y_i - \hat{y}_i)^2$
目标:找到使 MSE 最小的 $w$ 和 $b$
🏠 生活类比 (Analogy)
Section titled “🏠 生活类比 (Analogy)”🏠 房价预测
Section titled “🏠 房价预测”你想预测房价,发现房价和面积有关系:
- 50㎡ → 100万
- 100㎡ → 200万
- 150㎡ → 300万
你发现规律:房价 ≈ 2万 × 面积
这就是线性回归!找到 y = wx + b 中的 w(斜率)和 b(截距)。
🎯 数学公式 (Math)
Section titled “🎯 数学公式 (Math)”- :预测值
- :权重(斜率)
- :输入特征
- :偏置(截距)
多元线性回归
Section titled “多元线性回归”当有多个特征时:
损失函数:均方误差 (MSE)
Section titled “损失函数:均方误差 (MSE)”目标:找到使 MSE 最小的 和 。
💻 代码实现 (Code)
Section titled “💻 代码实现 (Code)”import numpy as np
# 数据X = np.array([50, 100, 150, 200]) # 面积y = np.array([100, 200, 300, 400]) # 房价(万)
# 手动实现X_mean, y_mean = X.mean(), y.mean()w = np.sum((X - X_mean) * (y - y_mean)) / np.sum((X - X_mean) ** 2)b = y_mean - w * X_mean
print(f"y = {w:.2f}x + {b:.2f}") # y = 2.00x + 0.00
# 预测new_area = 120predicted_price = w * new_area + bprint(f"120㎡ 预测价格: {predicted_price:.0f}万")from sklearn.linear_model import LinearRegressionimport numpy as np
X = np.array([[50], [100], [150], [200]])y = np.array([100, 200, 300, 400])
model = LinearRegression()model.fit(X, y)
print(f"权重 w: {model.coef_[0]:.2f}")print(f"偏置 b: {model.intercept_:.2f}")print(f"120㎡ 预测: {model.predict([[120]])[0]:.0f}万")🔗 与深度学习的联系
Section titled “🔗 与深度学习的联系”线性回归是神经网络的基础单元:
| 线性回归 | 神经网络 |
|---|---|
| 单层感知机(无激活函数) | |
| 梯度下降求解 | 反向传播更新参数 |
| MSE 损失 | 回归任务常用损失 |
一个没有激活函数的单层神经网络,本质上就是线性回归。
⚠️ 局限性
Section titled “⚠️ 局限性”- 只能拟合线性关系 - 数据呈曲线时效果差
- 对异常值敏感 - 一个极端点可能严重影响拟合线
- 假设特征独立 - 特征间有强相关时需要正则化