
无监督学习
|
263
7.5.3
分类数据和
Gower
距离
如果有分类数据,必须先通过排序(对于有序因子)或者将其编码为一组二元(虚拟)变
量,把它们转换为数值型数据。如果数据是由连续型变量和二元变量混合组成的,通常需
要对变量进行缩放,以使它们处于同一范围(参见
7.5.1
节)
。一种常用的缩放方法是使用
Gower
距离
。
Gower
距离的基本思想是,按照数据类型对每个变量使用不同的距离度量。
•
对数值变量和有序因子,使用两条记录之间的差的绝对值来计算距离(
曼哈顿距离
)。
•
对分类变量,如果两条记录的类别不同,它们的距离就是
1
;
如果类别相同,距离就是
0
。
Gower
距离的计算方法如下。
1.
对每条记录中所有变量
i
和变量
j
的两两组合,计算出它们之间的距离
d
i, j
。
2.
对
d
i,j
进行缩放,使得它的最小值是
0
,最大值是
1
。
3.
将缩放后的变量对之间的距离相加,使用均值或加权均值创建一个距离矩阵。
为了说明
Gower
距离,先使用
R
代码从贷款数据中取出几行:
> x <- loan_data[1:5, c('dti', 'payment_inc_ratio', 'home_', 'purpose_')]
> x
# A tibble: 5
×
4
dti payment_inc_ratio home purpose
<dbl> <dbl> <fctr> <fctr>
1 1.00 2.39320 RENT car
2 5.55 4.57170 OWN small_business
3 18.08 9.71600 ...