多变量的线性规划问题
理解 Andrew 所说的 的含义,其中下标表示第几个属性(特征)feature, 然后上标 (4) 是第几个样本。
= value of feature j in the ith training example
= the input (features) of the ith training example
m = the number of training examples
n = the number of features
多元变量的梯度下降法
Cost Function 损失函数
(损失函数为什么定义为 上述形式 是可以从参数估计,极大似然函数那里推导过来的)
repeat until convergence{
特征缩放 Feature Scaling
将所有特征都在相同的scall上 会使得梯度下降的速度更快,更少的迭代次数。
(等高线的角度理解,如果两个特征的范围不一,会导致梯度下降非常慢 而且 来回摆动)
如果特征值相差不多还可以
但是如果相差很多,就是特征范围很差,需要调整一下
feature scalling and mean normalization.
特征缩放是输入值的范围
均值归一化包括从输入特征的值中减去输入特征的平均值,从而得到新的输入特征,并且这个新的输入特征的平均值为0
(eg: 1,2,3,4,5 五个数据 avg = 3 操作之后变成 -2,-1,0,1,2 avg_new = 0)
公式:
其中 是输入特征的均值,是输入特征的范围
例如,如果房子的价格,100 - 2000为房价范围,均值为1000,则:
学习率影响
绘制损失函数的梯度下降运行曲线:X轴为迭代次数Y轴为损失函数的最小值,通过观察曲线来决定学习率的情况。
同时观察损失函数的收敛情况
如果损失函数在一次迭代中减少的值 小于 10e-3 基本可以判定损失函数收敛。
- 当学习率过大,损失函数会来回摆动,始终收敛不到最优点
- 学习率过小,收敛速度很慢
特征的重要性
了解数据,根据数据做特征工程
以房子的 长和宽举例子,这两个特征并不是我们需要的,我们需要的是 area 面积,所以将两个原始特征合并成一个新的特征 area
通常定义一个新的特征,可以得到一个更好的模型
(联系Kaggle的ELO比赛,不了解数据的实际意义的时候,就是 将各种数据进行组合 看特征的重要性)
注意:还是要对特征进行归一化,否则影响很大
这种方式选择特性,那么特性缩放就变得非常重要。
eg. if has range 1 - 1000 then range of becomes 1 - 1000000 and that of becomes 1 - 1000000000
多变量线性回归的标准方程(进行矩阵推导)
NormalEquation.png没必要对数据进行特征缩放 或者 归一化
Gradient Discent | Normal Equation |
---|---|
Need to choose alpha | No need to choose alpha |
Needs many iterations | No need to iterate |
, need to calculate | |
Works well when n is large | Slow if n is very large |
标准方程适用于 特征量较小 的 数据。梯度下降适用于 特征量较大的。
标准方程的不可逆变性
奇异矩阵 或者 退化矩阵 不可逆
其中的 要求是可逆的。
一般造成不可逆的原因有两个:
-
冗余特征,其中两个特征密切相关(即它们是线性相关的)
eg: size in feet size in meter^2
-
太多的特性(如m≤n),这时候需要删除一些特征 或者 使用正则化?
作业问题
Octave/Matlab 语言 A为矩阵
A^2 是指 A*A
A.^2 是指对 A中的元素 都进行 乘方
网友评论