我对机器学习中特征缩放的概念还不太熟悉,我读到当一个特征的范围与其他特征相比非常大时,进行缩放会很有帮助。但是如果我选择对训练数据进行缩放,那么:
- 我可以只对那个范围较大的特征进行缩放吗?
- 如果我对训练数据的整个
X
进行缩放,那么我是否也需要对训练数据的y
以及整个测试数据进行缩放?
回答:
- 是的,你可以对那个范围较大的特征进行缩放,但要确保没有其他范围较大的特征存在,因为如果存在且未被缩放,那么该特征会使算法忽略已缩放特征的贡献,并且即使该特征稍有变化也会影响结果(输出值)。建议(但不是强制)对训练集中所有特征进行缩放。
- 你不需要对训练数据的Y进行缩放,因为算法或模型会设置参数值以获得最小的成本(误差),即k{Y(输出)-Y(原始)}。但是,如果Xtrain已经被缩放,那么测试集(特征值,Xtest)(仅在Ytrain被缩放时才缩放Ytest)需要在输入模型之前进行缩放(使用训练数据的均值和方差),因为模型之前没有见过这些数据,并且已经在缩放范围的数据上进行了训练,所以如果测试数据的特征值与训练数据中相应特征范围有相当大的偏差,那么模型将对相应的测试数据输出错误的预测。