在对数据分析建模时,常常需要先进行预处理,特征缩放是一种消除变量尺度差异的一种方法。以下对最近的学习做一点记录,指出的算法覆盖并不全面。
为什么需要特征缩放:
举个例子:根据身高、体重来选择衣服的尺寸,假如现在有如下3个人的数据:
序号 | 身高 | 体重 | 尺寸 |
---|---|---|---|
1 | 1.70 | 68 | L |
2 | 1.52 | 57 | S |
3 | 1.75 | 60 | ? |
问:第三人的衣服应该选择什么尺寸?
凭人为经验来看应该选择L比S更合适。
但,如果让计算机来选择:
1、1.7 + 68 = 69.7
2、1.52 + 57 = 58.52
3、1.75 + 60 = 61.75
得出的结论是3和2更接近。
由于体重和身高是两个不平衡的特征,所以直接加和或者空间距离等都可能使结果产生较大偏差。
需要特征缩放的算法有:
计算距离时,其实在利用一个维度与另一个维度进行交换,会受到特征不平衡影响
- k-means
计算样本与中心点的距离
- SVM
支持向量与分离面距离最大化
特征缩放无影响的算法有:
- 线性回归
每个特征有一个系数,与其他特征不存在交换
- 决策树
由一系列水平线和垂直线组成,对特征单独处理,两个特征之间不存在交换
特征缩放方法有:
- 归一化 x = \frac{x-min}{max-min}
- 标准化 x = \frac{x-mean}{std}
网友评论