机器学习_线性回归
- 训练集:用来训练,构建模型
- 验证集:用来在模型训练阶段测试模型的好坏
- 测试集:等模型训练好之后,再用测试集来评估模型的好坏
- 回归:预测数据为连续性数值
- 分类:预测数据为类别型数据,并且类别已知
- 聚类:预测数据为类别型数据,但是类别未知
1、一元线性回归
- 回归分析:用来建立方程模拟两个或者多个变量之间如何关联
- 自变量:被用来进行预测的变量(输入)
- 因变量:被预测的变量(输出)
- 一元线性回归:包含一个自变量一个因变量
- 多元回归分析:包含两个以上的自变量
- 表达式: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x , θ 1 \theta_1 θ1为回归线的斜率, θ 0 \theta_0 θ0为回归线的截距
2、代价函数
- 误差平方: ( y − h θ ( x ) ) 2 (y-h_\theta(x))^2 (y−hθ(x))2,y为真实值, h θ ( x ) h_\theta(x) hθ(x)为预测值
- 找到合适的参数,使得误差平方和: J ( θ 0 , θ 1 ) = 1 2 m Σ i = 1 m ( y i − h θ ( x i ) ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\Sigma_{i=1}^m{(y^i-h_\theta(x^i))}^2 J(θ0,θ1)=2m1Σi=1m(yi−hθ(xi))2最小
- 相关系数: r x y = Σ ( X i − X ‾ ) ( Y i − Y ‾ ) Σ ( X i − X ‾ ) 2 Σ ( Y i − Y ‾ ) 2 r_{xy}=\frac{\Sigma(X_i-\overline{X})(Y_i-\overline{Y})}{\sqrt{\Sigma(X_i-\overline{X})^2\Sigma(Y_i-\overline{Y})^2}} rxy=Σ(Xi−X)2Σ(Yi−Y)2Σ(Xi−X)(Yi−Y) ---->相关系数越大,越相关
- 决定系数:用于描述非线性或者有两个及两个以上自变量的相关关系
(1)总平方和(SST): Σ i = 1 n ( y i − y ‾ ) 2 \Sigma_{i=1}^n(y_i-\overline{y})^2 Σi=1n(yi−y)2
(2)回归平方和(SSR): Σ i = 1 n ( y ^ − y ‾ ) 2 \Sigma_{i=1}^n(\hat{y}-\overline{y})^2 Σi=1n(y^−y)2, y ^ \hat{y} y^为预测值
(3)残差平方和(SSE): Σ i = 1 n ( y i − y ^ ) 2 \Sigma_{i=1}^n(y_i-\hat{y})^2 Σi=1n(yi−y^)2
三者关系为:SST=SSR+SSE
(4)决定系数: R 2 = S S R S S T = 1 − S S E S S T R^2=\frac{SSR}{SST}=1-\frac{SSE}{SST} R2=SSTSSR=1−SSTSSE
3、梯度下降法
- 公式: θ j : = α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j:=\alpha\frac{\partial}{\partial{\theta_j}}J(\theta_0,\theta_1) θj:=α∂θj∂J(θ0,θ1) (for j = 0 and j = 1) α \alpha α为学习率,步长
- 正确做法:同步更新
t e m p 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) temp0:=\theta_0-\alpha\frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1) temp0:=θ0−α∂θ0∂J(θ0,θ1)
t e m p 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) temp1:=\theta_1-\alpha\frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1) temp1:=θ1−α∂θ1∂J(θ0,θ1)
θ 0 : = t e m p 0 \theta_0:=temp0 θ0:=temp0
θ 1 : = t e m p 1 \theta_1:=temp1 θ1:=temp1 - 用梯度下降法求解线性回归:
(1) θ 0 : = θ 0 − α 1 m Σ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m}\Sigma_{i=1}^m(h_\theta(x^{(i)})-y^{(i)}) θ0:=θ0−αm1Σi=1m(hθ(x(i))−y(i))
(2) θ 1 : = θ 1 − α 1 m Σ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) \theta_1:=\theta_1-\alpha\frac{1}{m}\Sigma_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1:=θ1−αm1Σi=1m(hθ(x(i))−y(i))x(i) - 线性回归的代价函数是凸函数