【MachineLearning】之 线性回归(理论)

Topic
  1. 什么是线性回归?原理及实现
  2. 什么是最小二乘法?
  3. 最小二乘法代数求解
  4. 最小二乘法矩阵求解

本篇是理论篇,实战篇:线性回归实战


一、线性回归


先来回想下: 回归
回归 面对的一群连续值,从这群连续的点钟找出误差最小的线,从而来预估其他点

这里写图片描述
通过找到一条直线去拟合数据点的分布趋势的过程,就是线性回归的过程

然而这种线可能会有很多,那么如何从中找出最合适的线呢?
找到红线?
这里写图片描述




二、最小二乘法代数求解


最小二乘法是用于求解线性回归拟合参数 w 的一种常用方法,(均方误差最小

先来理解下 平方损失函数

y ( x , w ) = b + w x

对数据进行拟合时,得到拟合的整体误差(即蓝色线段的长度总和)
这里写图片描述

平方损失函数

如果一个数据点为( x i , y i ),那么它对应的误差损失)为:

y i ( b + w x i )

那么损失总和:

i = 1 n ( y i ( b + w x i ) )

更倾向于使用 均方误差 作为衡量损失的指标
i = 1 n ( y i ( b + w x i ) ) 2

(1) 平方损失函数:

f = i = 1 n ( y i ( b + w x i ) ) 2


(2)目标求 m i n ( f ) 最小时, 对应的 w

分别对 wb 求导,一阶偏导,并令其为零

f w = 2 ( w i = 1 n x 2 i = 1 n ( y b ) x ) = 0

f b = 2 ( m b i = 1 n ( y w x ) ) = 0


(3)求得:

w = i = 1 n y ( x x 1 ) i = 1 n x 2 1 m ( i = 1 n x ) 2

均值:
x 1 = 1 n i = 1 m x

b = 1 m i = 1 n ( y w x )


(4)结果

这样,就求出了 平方损失函数最小时对应的 ww 参数值,这也就是最佳拟合直线




三、 最小二乘法矩阵求解

为什么又要用矩阵来运算呢?代数计算方法不好吗?
  1. 并不是代数计算方式不好,只是在小数据集情况下,二者运算的效率相近
  2. 当面临 十万 或 百万规模的数据时,矩阵计算的效率就会高很多


(1) y = w x + b ,表达矩阵形式为:

(1) [ x 1 1 x 2 1 x 3 1 . . . . . . x n 1 ]

即: y = X W


(2)平方损失函数 : f = i = 1 n ( y i ( b + w x i ) ) 2

(2) f = i = 1 n ( y X W ) 2 = i = 1 n ( y X W ) T ( y X W )


(3)对 矩阵求偏导数

(3) f = 2 X T X W 2 X T y = 0

注意:

这里将 W 看做是系数变量,即 W T = W ,W是常量,固定的W转置是等价的。


(4)求得

当 矩阵 X T X 满秩(先不考虑不满秩)时, ( X T X ) 1 X T X = E , 且 E W = W

所以, ( X T X ) 1 X T X W = ( X T X ) 1 X T y

得到:

W = ( X T X ) 1 X T y




最后


看到这边是否有些疲惫,奖励自己一杯肥仔快乐水吧!!!

下一篇将介绍 线性回归实战

加油!!!

猜你喜欢

转载自blog.csdn.net/fanfan4569/article/details/81229380