本文来自之前在Udacity上自学机器学习的系列笔记。这是第18篇,介绍了数据前处理的方法—特征缩放。
特征缩放(Feature Scaling)
特征缩放是对数据特征进行前处理的方法。
我们用一个直观的例子来解释特征缩放。假设已知Cameron和Sarah的合适尺寸衬衫,我们需要选择一件合适尺寸的衬衫给Chris。同时,我们知道Cameron的身高和体重分别为175磅和5.9英尺,Sarah的身高和体重分别为115磅和5.2英尺,Chris的身高和体重分别为140磅和6.1英尺。
从直观上来说,我们会认为Chris的衬衫尺寸应该参考Cameron。他比Cameron还高一点,比Sarah高更多。
但如果我们从数据特征来看,考虑身高和体重这两个特征的加和,并判断Chris的这个结果更加靠近Cameron还是Sarah来判断Chris的合适衬衫尺寸选择谁来作为参考。结果是,Chris的身高和体重之和是更加靠近Sarah的。也就是说,通过对数据特征进行判断的结果在这个例子中并不合理。这是因为这两个特征是不一样的,直接相加导致数值比较大的体重占了主导位置,以至于身高的因素被忽略。
如果我们将身高和体重两个特征缩放到之间的某个数,这样就可以得到Chris更加靠近Cameron的结果,这和我们的直觉判断也是一样的。
公式
特征缩放的公式是:
其中和分别是特征下的最小和最大值。
sklearn提供了特征缩放的库:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html#sklearn.preprocessing.MinMaxScaler
支持向量机和K-均值聚类会受到特征缩放前后数据的影响,因为它们都需要考虑不同维度下的特征点的距离,而缩放后的数据的距离发生了改变。决策树和线性回归则不会。