用于聚类的分类特征预处理

数据挖掘 聚类 预处理 分类数据 特征缩放 特征构造
2022-03-10 20:06:20

谁能告诉建议使用混合特征(分类和连续)对数据进行聚类的最佳实践。我正在努力解决一个问题;我意识到对于所有度量算法,都需要在聚类之前扩展连续数据,所以我使用了sklearn.preprocessing.StandardScaler(). 使用我的分类特征,我使用了 onehotencoder 转换,但不清楚是否有必要将这些 onehotencoded 向量的组件也缩放到整个数据集,或者只是让它们保持原样?

2个回答

使用 Gower 距离进行聚类。您可以在本文本文中找到有关此措施的不同文章。

高尔距离是一种距离度量,可用于计算两个实体之间的距离,其属性具有分类值和数值的混合值。

高尔距离被计算为个体之间部分差异的平均值。每个部分相异性(以及 Gower 距离)的范围在 [0 1] 中。

d(i,j)=1pi=1pdij(f)

部分差异 (dij(f)) 计算取决于被评估变量的类型。这意味着将对每个特征应用特定的标准化,并且两个人之间的距离是所有特征特定距离的平均值。

  • 对于数值特征f, 部分相异度是 1) 观测值的绝对差异之间的比率xixj2) 从所有个体观察到的最大范围:dij(f)=|xixj||(maxN(x)minN(x))|,N是数据集中的个体数量。

  • 数值特征的部分相异计算(Rf= 观察到的最大范围)对于定性特征f仅当观察值时,部分相异度才等于 1yiyj有不同的价值。否则为零。

最佳做法是首先了解您的问题。

所有标准化、单热编码等只是将非连续数据压缩到列类型中的技巧,如果您不仔细查看数据,这些列类型可以作为连续传递。

是的,在某些时候你可以运行 k-means。但是你还会知道它的作用吗?它解决了正确的任务吗?所有的编码和缩放都有什么偏差?由于维度、离散性、编码伪影、偏差,结果不会变得完全无用...... - 你最初的真正意图是什么 - 我猜你不想要随机分区......