1.1 线性回归求解
线性回归的参数为,线性回归求解就是要找到一组,使得代价函数(残差平方和) 最小。
即,求解:
求残差平方和最小的方法最常见的就是最小二乘法和梯度下降法。
1.2 最小二乘法
最小二乘法的算法思想:
要找到一组,使得 (残差平方和) 最小,即最小化:。
首先将向量表达形式转为矩阵表达形式,则有,其中为行列的矩阵(为样本个数,为特征个数),为行1列的矩阵(包含了),为行1列的矩阵,则:
注意:公式(1.2)需要用到向量平方的性质:
对求偏导:
由于(1.3)式中间两项互为转置关系,而相乘的结果是一个标量,原矩阵与其转置相同。
则:
这里用到了以下矩阵求导法则:
,,若对称阵,
则公式(1.4)计算得到:
令:,则公式(4.13)计算得到公式(4.14):
以上就是最小二乘法的求解方法。
Python实现
def LSM(X, y):
w = np.linalg.inv(X.T X) @ X.T @ y #X.T@X等价于X.T.dot(X)
return w