摘要:给大家简单介绍了多变量线性回归,还附赠在处理梯度下降过程中通用的两个小技巧。

本文分享自华为云社区《【跟着小Mi一起机器学习吧!】多变量线性回归(一)》,原文作者:Skytier。

1 多维特征

image.png

现在我们有四个特征变量,如下图:
image.png
image.png

详细来说,这个假设是为了预测以万为单位的房屋价格,一个房子的基本的价格可能是80w,加上每平方米1000元,然后价格会随着楼层数的增加继续增长,随着卧室数的增加而增加,但是呢,随着使用年数的增加而贬值,这么一看这个例子是不是很有道理!
image.png

2 多变量梯度下降

好了,多变量线性回归假设的形式已经有了,也就是说料已经有了,接下来就要开始炒菜啦!
image.png

求导数后可得到:
image.png

代码示例:

计算代价函数:
image.png

Python代码:

def computeCost(X, y, theta):

    inner = np.power(((X * theta.T) - y), 2)

    return np.sum(inner) / (2 * len(X))

3 梯度下降法实践-特征缩放

接下来,我们将学习一些在梯度下降运算中的实用技巧,首先给大家介绍一个称为特征缩放的方法,这个方法如下:
image.png
image.png
image.png
image.png
image.png
image.png
image.png

4 梯度下降法实践-学习率

image.png
image.png
image.png

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。

也有一些自动测试是否收敛的方法,例如将代价函数的变化值小于某个阀值(例如0.001),那么测试就判定函数已经收敛,但是选择一个合适的阈值是相当困难的,因此,为了检测梯度下降算法是否收敛,更倾向于通过看曲线图,而不是依靠自动收敛测试。
image.png
image.png
image.png

点击关注,第一时间了解华为云新鲜技术~


华为云开发者联盟
1.4k 声望1.8k 粉丝

生于云,长于云,让开发者成为决定性力量