一、线性回归核心原理
1. 模型定义与公式
线性回归通过建立自变量XX与因变量YY的线性关系进行预测:
- 一元回归:y=β0+β1x+ϵy=β0+β1x+ϵ,适用于单变量分析。
- 多元回归:y=β0+β1x1+⋯+βnxn+ϵy=β0+β1x1+⋯+βnxn+ϵ,解决多因素影响问题。
2. 参数估计方法
- 最小二乘法:最小化残差平方和∑(yi−y^i)2∑(yi−y^i)2,通过正规方程β=(XTX)−1XTyβ=(XTX)−1XTy求解参数。
- 梯度下降:适用于高维数据,通过迭代优化ββ值。
3. 模型假设
- 线性关系、误差项正态性、同方差性、无多重共线性(需通过VIF值检验)。
二、Python代码实现
1. 数据预处理
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
# 读取数据(示例:广告费与销售额)
data = pd.read_csv("advertising.csv")
X = data[["TV"]] # 自变量
y = data["Sales"] # 因变量
# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
2. 模型训练与预测
from sklearn.linear_model import LinearRegression
# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测并评估
y_pred = model.predict(X_test)
print(f"斜率:{model.coef_:.2f},截距:{model.intercept_:.2f}")
三、模型评估与诊断
1. 关键指标
- R²(决定系数):衡量模型解释变量变异的比例,接近1表示拟合优度高。
- 调整R²:修正自变量数量对R²的影响,防止过拟合。
2. 统计检验
- F检验:验证模型整体显著性(p值<0.05时有效)。
- 残差分析:绘制残差图检查正态性、同方差性。
四、实战案例解析
案例1:员工工资预测
- 数据背景:初始工资、教育程度、工作经验对当前工资的影响。
- 关键步骤:
- 相关性筛选:剔除与工资无关的变量(如工作时间)。
- 多元回归建模:最终模型显示工作经验每增加1年,工资增长约$1200。
案例2:共享单车骑行量预测
- 数据特征:季节、天气、节假日对骑行量的影响。
- 模型优化:采用岭回归(Ridge)解决多重共线性,R²提升至0.85。
五、进阶技巧与避坑指南
1. 正则化方法
- 岭回归(L2正则化):解决特征共线性问题,限制参数大小。
- Lasso(L1正则化):自动筛选重要特征,适用于高维数据。
2. 常见误区
- 忽略数据清洗:异常值需通过标准化或Winsorizing处理。
- 机器学习人工智能盲目增加变量:无关特征会降低模型泛化能力(参考案例1)。
六、学习资源推荐
- 工具库:Scikit-learn(Python)、caret(R)。
- 书籍:《统计学习基础》《Python机器学习实战》。