多变量线性回归



计算代价函数
,其中: ![]()
![]()
octave求代价函数J(theta)代码:
function J = costFunctionJ(X,y,theta)
m = size(X,1);
prediction = X*theta;
sqrErrors = (prediction-y).^2;
J = 1/(2*m) * sum(sqrErrors);
Python 代码:
def computeCost(X, y, theta):
inner = np.power(((X * theta.T) - y), 2) # np为numpy包 import numpy as np
return np.sum(inner) / (2 * len(X))
然而 当我们的特征范围很大时,就要考虑这一对时间有影响的不可忽略的问题。
以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-
2000 平方英尺,而房间数量的值则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等
高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
分布图像如下:
X1 = size(0-2000feet^2)
x2 = number of bedrooms(1-5)
呈现椭圆形,进行梯度下降的话,则需要的时间会花费很大。
解决的方法是尝试将所有特征的尺度都尽量缩放到-1 到 1 之间。如图:

最简单的方法是令:
其中
本文介绍了多变量线性回归中的代价函数计算方法,并通过实例解释了特征值范围差异大时对梯度下降算法的影响。文章还讨论了解决这一问题的有效手段——特征缩放,以确保算法高效收敛。

被折叠的 条评论
为什么被折叠?



