当我们处理数据时时常会遇到是否要对数据进行比例调整(scale)的问题,那么究竟应不应该做比例调整要取决于数据的实际含义。

前一段时间为了弄明白Gower Distance在网上查找了一个slides1,里面介绍了很多常用距离,并且简单解释了数据比例尺度调整的问题。

  1. 对于4个人的年龄和身高,有数据
Person Age [years] Height [cm]
A 35 190
B 40 190
C 35 160
D 40 160

画图可以看到A、B比较近,C、D比较近。

有些地区喜欢用feet来作为身高的度量单位,如果换成feet,数据会变成

Person Age [years] Height [feet]
A 35 6.232
B 40 6.232
C 35 5.248
D 40 5.248

画图的话可以看到此时A、C比较近,B、D比较近。

那么究竟哪两个人的数据比较接近呢?

我们来做一下scale,

Person Age [scaled] Height [scaled]
A -0.87 0.87
B 0.87 0.87
C -0.87 -0.87
D 0.87 -0.87

结果发现这四个人距离差不多,分不出子类。

  1. 在来看另一种情况
Object x1 x2
A 13.3 38.0
B 12.4 45.4
C -122.7 45.6
D -122.4 37.7

有四个观测,分别知道它们的变量x1和变量x2数值,在R中scale(dat) 会发现四个观测分散很远,如果直接画图,就发现其实A、B距离近,C、D距离远。

如果x1和x2分别代表经度和纬度,那么这个数据就不应该标准化,A、B两个地点本来就是距离近,标准化后它本身的特点就不存在了。

到底用不用归一化呢?

1.做不做归一化,要知道

  • 变量取值范围大,这个变量就在计算距离时权重大
  • 距离的远近是由归一化后的数值决定的,不同的归一化,最后求出的距离也不一样
  • 归一化对每个变量赋予同样大的权重
  • 另一种可行方法是重赋值权重

2.这些情况下必须归一化

  • 变量单位不同
  • 我们自己期望属于要有相同的权重

3.这些情况下不要归一化

  • 变量单位相同

4.一般情况下

  • 请归一化

Reference

  1. https://stat.ethz.ch/education/semesters/ss2012/ams/slides/v4.2.pdf