经典机器学习算法:线性回归与逻辑回归
1. 线性回归(Linear Regression)
1.1 基本概念
线性回归是一种用于预测连续值的监督学习算法,通过拟合输入特征与目标值之间的线性关系来进行预测。
1.2 数学模型
给定输入特征 X = [ x 1 , x 2 , . . . , x n ] X = [x_1, x_2, ..., x_n] X=[x1,x2,...,xn],线性回归模型表示为:
y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y = w_1 x_1 + w_2 x_2 + ... + w_n x_n + b y=w1x1+w2x2+...+wnxn+b
其中:
- y y y为预测值
- w i w_i wi为权重
- b b b为偏置项
1.3 目标函数
线性回归的目标是最小化预测值与真实值之间的均方误差(MSE):
L ( w , b ) = 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 L(w, b) = \frac{1}{m} \sum_{i=1}^m (y^{(i)} - \hat{y}^{(i)})^2 L(w,b)=m1i=1∑m(y(i)−y^(i))2
其中:
- m m m为样本数量
- y ( i ) y^{(i)} y(i)为真实值
- y ^ ( i ) \hat{y}^{(i)} y^(i)为预测值
1.4 优化方法
通过梯度下降法更新参数:
- 计算梯度:
∂ L ∂ w j = 2 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) x j ( i ) \frac{\partial L}{\partial w_j} = \frac{2}{m} \sum_{i=1}^m (y^{(i)} - \hat{y}^{(i)}) x_j^{(i)} ∂wj∂L=m2i=1∑m(y(i)−y^(i))xj(i)
∂ L ∂ b = 2 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) \frac{\partial L}{\partial b} = \frac{2}{m} \sum_{i=1}^m (y^{(i)} - \hat{y}^{(i)}) ∂b∂L=m2i=1∑m(y(i)−y^(i)) - 更新参数:
w j = w j − η ∂ L ∂ w j w_j = w_j - \eta \frac{\partial L}{\partial w_j} wj=wj−η∂wj∂L
b = b − η ∂ L ∂ b b = b - \eta \frac{\partial L}{\partial b} b=b−η∂b∂L
2. 逻辑回归(Logistic Regression)
2.1 基本概念
逻辑回归是一种用于分类任务的监督学习算法,通过拟合输入特征与目标类别之间的概率关系来进行分类。
2.2 数学模型
给定输入特征 X = [ x 1 , x 2 , . . . , x n ] X = [x_1, x_2, ..., x_n] X=[x1,x2,...,xn],逻辑回归模型表示为:
p ( y = 1 ∣ X ) = σ ( w 1 x 1 + w 2 x 2 + . . . + w n x n + b ) p(y=1 | X) = \sigma(w_1 x_1 + w_2 x_2 + ... + w_n x_n + b) p(y=1∣X)=σ(w1x1+w2x2+...+wnxn+b)
其中:
- σ \sigma σ为sigmoid函数:
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1 - p ( y = 1 ∣ X ) p(y=1 | X) p(y=1∣X)为输入 X X X属于类别1的概率
2.3 目标函数
逻辑回归的目标是最小化交叉熵损失函数:
L ( w , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ( y ^ ( i ) ) + ( 1 − y ( i ) ) log ( 1 − y ^ ( i ) ) ] L(w, b) = -\frac{1}{m} \sum_{i=1}^m [y^{(i)} \log(\hat{y}^{(i)}) + (1 - y^{(i)}) \log(1 - \hat{y}^{(i)})] L(w,b)=−m1i=1∑m[y(i)log(y^(i))+(1−y(i))log(1−y^(i))]
其中:
- m m m为样本数量
- y ( i ) y^{(i)} y(i)为真实类别(0或1)
- y ^ ( i ) \hat{y}^{(i)} y^(i)为预测概率
2.4 优化方法
通过梯度下降法更新参数:
- 计算梯度:
∂ L ∂ w j = 1 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) x j ( i ) \frac{\partial L}{\partial w_j} = \frac{1}{m} \sum_{i=1}^m (\hat{y}^{(i)} - y^{(i)}) x_j^{(i)} ∂wj∂L=m1i=1∑m(y^(i)−y(i))xj(i)
∂ L ∂ b = 1 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) \frac{\partial L}{\partial b} = \frac{1}{m} \sum_{i=1}^m (\hat{y}^{(i)} - y^{(i)}) ∂b∂L=m1i=1∑m(y^(i)−y(i)) - 更新参数:
w j = w j − η ∂ L ∂ w j w_j = w_j - \eta \frac{\partial L}{\partial w_j} wj=wj−η∂wj∂L
b = b − η ∂ L ∂ b b = b - \eta \frac{\partial L}{\partial b} b=b−η∂b∂L
实现(欠)
总结
线性回归用于预测连续值,通过最小化均方误差来拟合数据。
逻辑回归用于分类任务,通过最小化交叉熵损失来拟合数据。
两者都通过梯度下降法优化参数,是机器学习中最基础且重要的算法。