Py学习  »  机器学习算法

【机器学习】线性回归求解

机器学习初学者 • 10 月前 • 223 次点击  

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  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/188203