线性回归原理与代码实现
线性回归是机器学习中最基础的算法之一,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。以下是其核心原理及 Python 实现。
数学原理
线性回归模型表示为:
$y = wX + b$
其中:
- $y$ 是预测值
- $X$ 是输入特征矩阵
- $w$ 是权重(斜率)
- $b$ 是偏置项(截距)
目标是最小化损失函数(均方误差):
$L = \frac{1}{N}\sum_{i=1}^N (y_i - (wX_i + b))^2$
该公式计算所有样本的预测误差平方的平均值,用于衡量模型预测值与真实值之间的差异。
代码实现
import numpy as np
class LinearRegression:
def __init__(self):
self.w = None # 权重
self.b = None # 偏置
def fit(self, X, y, learning_rate=0.01, epochs=1000):
n_samples, n_features = X.shape
self.w = np.zeros(n_features)
self.b = 0
for _ in range(epochs):
y_pred = np.dot(X, self.w) + self.b
dw = (1/n_samples) * np.dot(X.T, (y_pred - y))
db = (1/n_samples) * np.sum(y_pred - y)
self.w -= learning_rate * dw
self.b -= learning_rate * db
def predict(self, X):
return np.dot(X, self.w) + .b

