线性回归是机器学习中最基础的算法之一,常用于预测连续值问题。以下是实现步骤与关键要点:
🔧 实现步骤概览
数据准备
- 收集特征数据(如房价与面积)
- 标准化处理:
X = (X - X.mean()) / X.std()
- 分割训练集/测试集:
train_test_split
模型构建
- 定义损失函数:均方误差(MSE)
- 选择优化算法:梯度下降(Gradient Descent)
- 初始化参数:
theta = np.random.randn(n_features, 1)
训练与预测
- 迭代更新参数:
theta = theta - alpha * gradient
- 计算预测值:
y_pred = X.dot(theta)
- 评估模型:
r2_score
或mean_absolute_error
- 迭代更新参数:
📜 代码示例(Python)
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
# 示例数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
# 创建模型
model = LinearRegression()
model.fit(X, y)
# 预测与评估
prediction = model.predict(X)
print(f"预测结果: {prediction}")
print(f"R² 分数: {r2_score(y, prediction)}")
⚠️ 注意事项
- 特征缩放对梯度下降收敛速度影响显著
- 避免过拟合:可通过正则化(如L1/L2)控制
- 可视化结果时建议使用
matplotlib
或seaborn