- • 线性回归是最基础的回归算法
- • 使用最小二乘法求解最优参数
- • Ridge和Lasso可防止过拟合
- • Lasso还具有特征选择功能
7.1 线性回归
机器学习的基础算法
🎯 学习目标
- 理解线性回归的原理
- 掌握最小二乘法
- 学会使用sklearn实现线性回归
- 了解正则化回归方法
📐 线性回归原理
假设函数
y = wx + b
# 多元线性回归
y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
目标:找到最优的w和b,使得预测值与真实值误差最小。
💻 sklearn实现
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import numpy as np
# 生成数据
X = np.random.randn(100, 1)
y = 2 * X.squeeze() + 1 + np.random.randn(100) * 0.1
# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 评估
print(f"权重 w: {model.coef_}")
print(f"偏置 b: {model.intercept_}")
print(f"MSE: {mean_squared_error(y_test, y_pred):.4f}")
print(f"R²: {r2_score(y_test, y_pred):.4f}")
📊 正则化回归
Ridge回归 (L2)
from sklearn.linear_model import Ridge
# L2正则化
ridge = Ridge(alpha=1.0)
ridge.fit(X_train, y_train)
# alpha越大,正则化越强
# 权重趋向于小但非零
Lasso回归 (L1)
from sklearn.linear_model import Lasso
# L1正则化
lasso = Lasso(alpha=0.1)
lasso.fit(X_train, y_train)
# Lasso可实现特征选择
# 部分权重会变为0
print(lasso.coef_)
📝 本节小结
✅