线性回归学习

188 阅读2分钟

用经典的西瓜问题来解释线性回归

西瓜的甜度yy由成熟度ww和基础甜度bb表示,这本质是0维张量的线性回归 ?y=w \cdot x + b?

1. 把公式推广到样本数为n的数据集

?\sum_{n=1}^m y = \sum_{n=1}^m (w \cdot x_n + b_n)?

2. 再推广到有多个参数的情况

西瓜的甜度 y=w成熟度+w根蒂+w色泽+... w敲声y = w_{成熟度}+w_{根蒂}+w_{色泽}+...\ w_{敲声}

单一参数ww扩展成wjw_j jj是特征数量

?\sum_{n=1}^m y = \sum_{n=1}^m (w_j x_{j\ n} + b_n)?

处理右边n=1m(wjxj n+bn)\sum\limits_{n=1}^m (w_j x_{j\ n} + b_n) \quad 把求和转换成矩阵乘法 ?\sum\limits_{n=1}^m (w_j x_n + b_n) = \begin{bmatrix} w_1\ w_2\ w_3\ ...\w_j \b \end{bmatrix} \quad \begin{bmatrix} x_{11}& x_{21}& x_{31}& ...&x_{j1} &1 \x_{12}& x_{22}& x_{32}& ...&x_{j2} &1 \ ...& ...& ...& ...& ... &1 \ x_{1n} & x_{2n}& x_{3n}&.... & x_{jn} &1 \end{bmatrix} ? 矩阵形状为[j×1] [n×j][j\times 1]\ [n\times j] 这明显不能作矩阵乘法,所以需要进行转置

广义线性回归分布函数

?Y = W^T X^T?

WW 是参数矩阵,形状: j×1j \times 1

jj 是参数的个数 w1, w2, w3 ... wjw_1,\ w_2,\ w_3\ ...\ w_j

XX 是自变量矩阵,形状: n×jn \times j

nn 是样本数, jj 是每个自变量XX的特征数 x1, x2, x3, ... xjx_1,\ x_2,\ x_3,\ ...\ x_j

?Y = w^T \cdot x^T = [1\times j ]\cdot [j \times n] =1 \times n?

最终得到的Y值还需要进行转置 ?Y^T = n\times 1?

最终得到 nn 行1列的Y,对应nn组样本

Tips: 其实上面也可以把Y=WTXTY = W^T \cdot X^T变成Y=XWY = X \cdot W 这样也可以进行行列运算,而且最终得到的Y就是[n×1][n\times 1],不需要转置

loss函数

?f(x) = \sum_{n=1}^m\bigl( y_i - \hat y_i \bigr) ^2?

这个函数是均方差函数,最终loss=(YWTXT)2loss = \bigl(Y-W^T X^T \bigr)^2 这是一个广义二次函数,我们的目标是求这个函数的最小值,loss最小即模型准确率最高 找二次函数最小值的方式是求导数为0的最值点,先对函数进行变形 ?F(x) = \frac{1}{2m} \sum_{n=1}^m \bigl( y_i - w \cdot x_n \bigr)^2 ?

这里的12\frac{1}{2}是为了等之后的二次方求导下来变成2之后约掉,方便计算机计算。加上12\frac{1}{2}并不会对求导取的x值有任何影响,反而能减少CPU计算步骤