在聚类之前预处理混合数据

数据挖掘 聚类 无监督学习 预处理
2022-02-22 17:54:27

我是层次聚类的新手,希望对混合数据执行聚类。我对必要的预处理步骤有些困惑。我了解如何预处理纯连续数据,但我无法确定的是混合数据需要哪些预处理步骤?我是否只是缩放我的连续变量、估算缺失数据并单独保留分类变量?还是我需要对所有变量类型执行转换?

2个回答

这取决于许多因素,包括:数据和数据类型、距离度量、聚类方法。您还需要记住,不同的软件包可能会以不同的方式处理/不处理各种步骤和转换。

数值数据:

标准化或缩放数字特征以确保这些特征具有相同的比例和/或单位方差。例如最小最大比例,以便所有值都在 0-1 范围内。

分类数据:

对于性别或国家等名义数据,可以应用 Dummy / One Hot Encoding 来有效地将每个值视为二进制特征。对于具有高基数 (>15) 的情况,例如美国各州,可能有必要通过应用特征工程或其他技术来减少这些。

序数数据可能是最难处理的。需要理解并解释每个值之间的顺序和相对差异。拿奥运奖牌来说,我们可以分配铜牌 (1)、银牌 (2) 和金牌 (3),然后应用 MinMax 0-1 缩放来有效地将这些作为数字特征处理。关键是这种方法意味着白银的价值是青铜的两倍,而黄金的价值是青铜的三倍。这可能是正确的,但当数据中的顺序不太明确时可能会变得具有挑战性。我经常要处理的一个问题是大小不等的公司收入箱。另一种方法是在分类的情况下使用每个值相对于目标的分数。

我正在写这篇关于集群混合数据类型数据的python 笔记本和博客文章- 这是一项正在进行的工作,但关键概念就在那里。

如果它是分类的,您可以使用每个类别的存在/不存在作为特征。

如果它是标称的(有序的),您可以将它们的值标准化为 0 和 1 之间(或者您将其余数据标准化到的任何范围)。