机器学习特征处理笔记概要
在特征工程之前,数据的特征需要经过哪些必要的预处理(preprocessing)?
其中最广为人知的预处理技巧可能就是特征缩放(feature scaling),它的目的是保证所有的特征数值具有相同的数量级。在有些情况下,数据中的某些特征会具有不同的尺度,比如在电商上买衣服时,身高和体重就是不同尺度的特征。
举个简单例子来说:
假设我的身高 / 体重是 1.85 米 /64 公斤,而买了同款衣服的两个朋友,1.75 米 /80 公斤的穿 L 号合适,1.58 米 /52 公斤的穿 S 号正好。直观判断的话,L 码应该更合适我。可如果把(身高,体重)的二元组看作二维空间上的点的话,代表我自己的点显然和代表 S 码的点之间的欧式距离更近。如果电商不开眼的话,保不齐就会把 S 码推荐给我。
实际上,不会有电商做出这么弱智的推荐,因为他们都会进行特征缩放。在上面的例子中,由于体重数据比身高数据高出了一个数量级,因此在计算欧式距离时,身高的影响相比于体重是可以忽略不计的,起作用的相当于只有体重一个特征,这样的算法自然就会把体重相近的划分到同一个类别。
特征缩放的作用就是消除特征的不同尺度所造成的偏差,具体的变换方法有以下这两种:
不难看出,标准化的方法用原始数据减去均值再除以标准差,不管原始特征的取值范围有多大