线性回归相关知识

关于Feature Scaling:  get every feature into approximately into [-1, 1]
a:每个维度的特征减去此维度特征均值,除以此维度特征的最大值与最小值之差:
   (xi - mean(xi)) / (max(xi) - min(xi))  (mean normalization)
b:每个维度的特征减去此维度的均值,除以这个维度的标准差:
   (xi - mean(xi)) / std(xi)   (mean normalization)    
c:常数项x0 = 1,已经在(或接近)合理的range内,无需缩放
d:为什么要Feature Scaling呢?
   特征缩放有助于算法快速收敛,可以通过迭代算法的公式来解释:
e:使用缩放特征计算得到的模型参数去做预测,预测样本是否也需要做Feature Scaling
   对于一个待预测的sample instance X,使用模型参数预测前,应首先对X进行Feature Scaling
   即:X = (X - mean(xi)) / std(xi),其中,mean(xi)和std(xi)是训练样本集第i维特征的均值和方差
f:使用Normal Equation(正规方程)计算模型参数,是否需要做特征缩放?

   使用正规方程计算参数时,无需进行Feature Scaling
g:Why not Feature Scaling the y ?????


关于Learning Rate:
与正规方程(Normal Equation)不同,梯度下降算法需要选择合适的Learning rate,以便控制
算法的迭代效果和迭代速度。通常情况下,先选择一个较小的初始学习率,观察效果,然后可
以按照3倍、10倍递增的方式逐步提高学习率,观察效果。直到能够找到一个合适的Learning rate
a:学习率过大,会导致算法不收敛
b:学习率过小,会导致算法迭代速度过慢,影响算法效率


关于Debugging Issue:
为了验证迭代算法(梯度下降)是否能够在迭代中逐步降低Cost function。需要画出代价函数
关于迭代次数的曲线,根据这个曲线适当调整算法参数,可以实现算法收敛/提高收敛效率


关于Normal Equation: 
不需要Feature Scaling,不需要迭代,不需要设置学习率
Normal Equation定义如下所示:
theta = (X^T * X)^(-1) * X^T * y
其中:
a:X为design matrix,每行为一个sample instance的特征,共n + 1项,n为特征维数
   每个sample instance的第一项都为1,为常数项(为便于计算而引入的)
b:X^T表示矩阵X的转置,^(-1)表示矩阵求逆,y表示训练样本中的预测值,为mx1维,m为
   sample instance的个数,theta表示要计算的模型参数向量,为n + 1维
c:假设矩阵A维数为nxn,则A^(-1)的计算复杂度为O(n^3)


何时使用Normal Equation,何时使用Gradient Descent
m = number of training samples,    n = number of features
n=10000时,Normal Equation需要计算逆矩阵,所以Normal Equation方法效率会慢下来,可以
考虑使用Gradient descent代替
n=100000时,计算Normal Equation中的(XT*X)^(-1)会变得非常慢,此时,definitely使用Gradient Descent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值