When and why do we need to do feature normalization

这个问题在学校里老师讲的时候说,没有定论,应该always try;
我在网上查有的人说的是用euclidean distance和gradient descent的算法需要;
记得在techie上课的时候是说在使用gradient descent的时候需要;
想请教一下如果面试官有问到这个问题,应该怎么回答比较好?

  1. feature normalization并非一定对模型有帮助,比如对tree-based model就没有帮助。

  2. 对于linear regression这种model, 由于它的loss function的特点,feature normalization可以加速它在gradient descent时的收敛速度,从而在模型数值求解迭代次数有限的情况下,可以在一定程度上提高模型的精度。关于feature normalization对linear regression模型求解的具体影响,你也可以参考咱们在Techie课上Class 1的课件,里面有细致的推导

谢谢老师的解答。意思是面试官问的时候,只说用gradient descent的算法需要feature normalization吗?比较完整的答案应该是什么样的呢~?

就像前面提到的,建议在面试的时候从两个方面回答:

  1. feature normalization并非一定对模型有帮助,比如对tree-based model就没有帮助。这就回答了"when"的问题。
  2. feature normalization有用的时候,是对于那些gradient descent求解loss的模型,比如linear regression。具体解释就是: feature normalization可以加速它在gradient descent时的收敛速度,从而在模型数值求解迭代次数有限的情况下,可以在一定程度上提高模型的精度。这就回答了"Why"的问题。
1 个赞