您的位置:首页 > 其它

coursera《机器学习》吴恩达-week2-01 多个变量的线性回归

2017-08-17 18:39 375 查看

具有多个特征的线性回归

多个变量=多个特征

在原版本我们有

X =房屋大小,用它来预测

y =房价

如果在一个新的计划中,我们有更多的变量(如卧室数量,楼层数,家庭年龄)

x 1,x 2,x 3,x 4 是四个特征

x 1 - 尺寸(平方)

x 2 - 卧室数量

x 3 - 楼层数量

x 4 - 家庭年龄(岁)

y是输出变量(price)

更多符号

n

特征数(n = 4)

m

示例数(即表中的行数)

x i

某个例子的输入向量(第i个输入例子的四个参数的向量 )

i是训练集的索引

所以

x是n维特征向量

例如x 3 是第三个房屋,并且包含与该房屋相关联的四个特征

xij

第i个训练示例中的特征j的值

所以

例如,x32是第三个房子的卧室数

现在我们有多个特征

我们的假设是什么形式?

以前我们的假设采取了形式;

ħ θ(X) =θ0 + θ1X

这里我们有两个参数(theta 1和theta 2)由我们的成本函数确定

一个变量x

现在我们有多个特征

hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4

例如

hθ(x) = 80 + 0.1x1 + 0.01x2 + 3x3 - 2x4

一个试图预测房屋价格的假设的例子

参数仍然通过成本函数确定

为了方便记号, x 0 = 1

对于每个例子,我每个例子都有一个额外的第0个特征

所以现在你的特征向量是从0索引的n + 1维特征向量

这是一个名为x的列向量

每个示例都有一个与其相关联的列向量

所以让我们说一个新的例子叫做“X”

参数也在0索引的n+1维向量中

这也是一个称为θ的列向量

该向量对于每个示例是相同的

考虑到这一点,假设函数可写为:

hθ(x) = θ0x0 + θ1x1 + θ2x2 + θ3x3 + θ4x4

如果我们这样做

hθ(x) =θT X

θT为[1×(N+1)]矩阵

换句话说,由于 θ 是列向量,所以转置操作将其转换成行向量

所以以前

θ 是矩阵[(N+1)×1]

现在

θT 是矩阵[1×(N+1)]

这意味着的 θ T和X的内部尺寸匹配,因此它们可以被相乘

[1 x n+1] * [n+1 x 1]

= hθ(x)

所以,换句话说,我们的参数向量*的一个输入示例X给出了一个预测的假设,即[1 x 1]维度(即单个值)

这个x 0=1可以让我们这样写

这是多变量线性回归的例子

多个变量的梯度下降

具有梯度下降的假设的拟合参数

参数 θ 0 至 θ Ñ

而不是将它们视为n个独立的值,而是将参数视为单个向量(θ)

其中 θ 为n + 1维

我们的成本函数是



类似地,不考虑J作为n + 1个数的函数,J(θ)只是参数向量的函数

Gradient descent


再次,这是

-θj = θj -学习率(α)*J(θ)针对θJ(…)的偏导数

我们通过这样做 同时更新 每个 θ j 值

实现这个算法

当n = 1时



上面,我们有稍微不同的更新规则 θ 0 和 θ 1

实际上它们是一样的,除了结尾有一个以前未定义的 x0(i)为1,所以没有显示

我们现在对于多变量梯度下降具有几乎相同的规则



这里发生了什么?

我们正在为每个j(0到n)做同时更新(像n = 1时)

所以,我们重新设定 θ j 为

θ j 减去学习率( α)倍的相对于 θj的偏导数 θ 矢量

在非微积分词中,这意味着我们这样做

学习率

*1 / m(使数学更容易)

*所有的差值和

将可变向量的假设减去实际值乘以该可变向量的第j个值

需要牢记



这些算法都很相似

梯度下降实例1:特征缩放

涵盖了这个理论,我们现在继续了解一些实际的技巧

特征缩放

如果您有多个特征的问题

您应该确保这些特征具有相似的尺寸

意味着 梯度下降将更快地收敛

例如

x1 =大小(0 - 2000英尺)

x2 =卧室数量(1-5)

也就是说,如果我们绘制所生成的轮廓 θ 1个 与 θ 2 由于庞大的距离差,得到了非常高而薄的形状

在这种成本函数上运行梯度下降可能需要很长时间才能找到全局最小值



病态输入到梯度下降

所以我们需要重新调整这个输入,使它更有效

因此,如果您通过除以每个特征的最大值来定义x1和x2中的每个值

轮廓变得更像圆(按0和1之间的比例)

可能想把所有东西都变成-1到+1范围(近似的)

想要避免相对于另一特征值的特大范围,小范围或相互不同的范围

规定可接受的范围

-3到+3比较好 - 大了就不好了

-1/3到+1/3也行 - 太小不好

可以做平均归一化

取一个特征值 x i

将其替换为(xi - avg)/max

所以你的所有值的平均值约为0



除了最大值,也可以使用标准差


a49f
习速率α

聚焦学习速率(α)

主题

更新规则

调试

如何选择 α

确保梯度下降正常工作

绘制最小J(θ)与迭代次数最小化

(即在梯度下降过程中绘制J(θ)

如果梯度下降工作,则每次迭代后J(θ)应减小

如果您在一定数量后没有取得巨大收益,也可以显示

如果需要,可以应用启发式方法来减少迭代次数

例如,如果在1000次迭代之后,您几乎无需减少参数,您可以选择仅在以后运行1000次迭代

确保你不会意外硬编码这样的门槛,然后忘记为什么他们是!

(i.e. plotting J(θ) over the course of gradient descent

If gradient descent is working then J(θ) should decrease after every iteration

Can also show if you’re not making huge gains after a certain number

Can apply heuristics to reduce number of iterations if need be

If, for example, after 1000 iterations you reduce the parameters by nearly nothing you could chose to only run 1000 iterations in the future

Make sure you don’t accidentally hard-code thresholds like this in and then forget about why they’re their though!

特征和多项式回归

标准方程法

标准方程和不可逆性

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习
相关文章推荐