多个变量的线性回归问题【机器学习】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36124194/article/details/88627148

从我们上次介绍的问题进行延申,同样是房子价格的预测,但我们此时的特征从一个变成多个特征,也就是变量从一个变成了多个,例如其他特征有面积,房间个数,楼层,房龄等。我们用一个列向量代表这些特征:
在这里插入图片描述
此时,我们假设的模型也要相应做出变化:
在这里插入图片描述
为了方便计算,也就是使得两个列向量可以进行运算,我们定义
在这里插入图片描述
这样一来,模型可以写成
在这里插入图片描述
同样,我们定义损失函数
在这里插入图片描述
目标是使得损失函数取得最小值。
使用梯度下降更新参数
在这里插入图片描述
化简
在这里插入图片描述
对于多个变量的线性回归问题,做到这里你可能会发现结果与我们预期相差得比较远或者收敛得比较慢,我们需要多数据进行一些预处理,试想一下,如果维度之间的数量级不同,梯度下降的方向就有可能受到比较大的影响,在没有对数据进行预处理时,
在这里插入图片描述
进行数据预处理以后
在这里插入图片描述
下面提供几种对数据进行预处理的操作
xi=xiuisix_i = \frac{x_i - u_i}{s_i}
其中uiu_i是数据集的均值,sis_ixix_i与数据集中最小值的差,sis_i也可以是标准差。
x=xminmax=minx = \frac{x - min}{max = min}

上面的做法是一般的做法,但我们也应该会想,这整个过程我们所有的数据都已经知道了,能不能通过列等式求解呢,答案是可以的,但这种方法存在很大的问题,对于矩阵
在这里插入图片描述
我们列出的表达式是
Xθ=yX\theta = y
推导如下:
XTXθ=yXT=>θ=(XTX)XTyX^TX\theta = yX^T => \theta = (X^TX)X^Ty
但在数学证明当中,(XXT)1(XX^T)^{-1}的计算是有误差的,只有满秩的矩阵才有逆,我们在编程中只能通过求虚逆来计算,所以误差比较大。
更多技术博客https://vilin.club/

展开阅读全文

没有更多推荐了,返回首页