为什么要学习线性模型
线性模型是机器学习与数据分析中最基础、也最重要的一类模型。
学习线性模型的意义在于:
- 模型结构简单,数学含义清楚
- 可解释性强,适合分析变量影响
- 训练速度快,常作为基准模型
- 是理解正则化、泛化能力和过拟合的起点
一句话总结:如果不理解线性模型,就很难真正理解机器学习模型在做什么。
线性回归(Linear Regression)
1. 基本概念
线性回归假设目标变量与特征之间存在线性关系:
\[y = w_1x_1 + w_2x_2 + \dots + w_nx_n + b\]其中:
- (x) 是特征
- (y) 是预测目标
- (w) 是权重,表示特征的重要性
- (b) 是偏置或截距
模型的目标是找到一组参数,使预测值与真实值之间的误差最小。
2. sklearn 实现
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
3. 优缺点
优点:
- 结构清晰,结果容易解释
- 计算效率高
- 适合作为 baseline 模型
缺点:
- 容易受到异常值影响
- 当特征相关性强时,模型不稳定
- 无法拟合复杂的非线性关系
岭回归(Ridge Regression)
1. 为什么需要岭回归
当特征数量较多或特征之间高度相关时,普通线性回归容易出现:
- 权重数值过大
- 对数据扰动非常敏感
- 测试集表现下降
岭回归通过正则化来缓解这些问题。
2. 核心思想
岭回归在损失函数中加入 L2 正则项:
\[Loss = MSE + \lambda \sum w^2\]作用是限制模型参数的大小,从而提高泛化能力。
岭回归的特点:
- 所有特征都会被保留
- 权重会被压缩,但不会变成 0
3. sklearn 实现
from sklearn.linear_model import Ridge
model = Ridge(alpha=1.0)
model.fit(X_train, y_train)
套索回归(Lasso Regression)
1. 核心思想
Lasso 回归在损失函数中加入 L1 正则项:
\[Loss = MSE + \lambda \sum |w|\]与岭回归不同,Lasso 会将部分不重要特征的权重压缩为 0。
2. 主要特点
- 可以自动进行特征选择
- 模型更稀疏
- 当特征很多时非常有用
3. sklearn 实现
from sklearn.linear_model import Lasso
model = Lasso(alpha=0.1)
model.fit(X_train, y_train)
模型评估指标
1. MSE(均方误差)
\[MSE = \frac{1}{n}\sum(y - \hat{y})^2\]特点:
- 越小越好
- 对异常值非常敏感
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
2. RMSE(均方根误差)
\[RMSE = \sqrt{MSE}\]特点:
- 与原始数据单位一致
- 更容易解释误差大小
rmse = mean_squared_error(y_test, y_pred, squared=False)
3. R²(决定系数)
\[R^2 = 1 - \frac{残差平方和}{总平方和}\]含义:
- 越接近 1,模型解释能力越强
- 可能为负,表示模型表现很差
from sklearn.metrics import r2_score
r2 = r2_score(y_test, y_pred)
教学重点总结
- 线性回归是所有监督学习模型的基础
- 岭回归用于缓解过拟合和特征相关问题
- 套索回归可用于特征选择
- MSE 和 RMSE 衡量预测误差大小
- R² 衡量模型对数据的解释能力