
无监督学习
|
265
7.5.4
混合数据聚类中的问题
K-
均值和
PCA
最适用于连续型变量。对于较小的数据集,使用基于
Gower
距离的层次聚
类效果更好。理论上,
K-
均值可以用于二元数据和分类型数据
。通常需要使用“独热编
码”(参见
6.1.3
节)将分类型数据转换为数值型数据
。在实践中,很难在二元数据上使用
K-
均值和
PCA
方法。
如果使用标准的
z
分数
,二元变量就会主导簇的生成过程,这是因为
0/1
变量只有两个取
值,如果将所有取值为
0
或取值为
1
的记录放在一个簇里
,
K-
均值就可以得到一个非常小
的簇内平方和。举例来说,我们在包含了因子变量
home
和
pub_rec_zero
的贷款违约数据
上使用
K-
均值。以下是
R
代码:
df <- model.matrix(~ -1 + dti + payment_inc_ratio + home_ + pub_rec_zero,
data=defaults)
df0 <- scale(df)
km0 <- kmeans(df0, centers=4, nstart=10)
centers0 <- scale(km0$centers, center=FALSE,
scale=1/attr(df0, 'scaled:scale'))
round(scale(centers0, center=-attr(df0, 'scaled:center'), scale=FALSE), 2)
dti payment_inc_ratio home_MORTGAGE home_OWN home_RENT ...