社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

机器学习初学者 • 5 月前 • 127 次点击  

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