以语义属性关联为指导的交互式子空间聚类分析(Interactive Subspace Cluster Analysis Guided by Semantic Attribute Associations)

在高维数据中,子空间指由维度子集构成的数据空间。为了避免数据中的重要模式被无关维度掩盖,分析人员需要选择合适的子空间作为分析对象,而不是在全维度空间进行分析。然而,子空间数量过多是子空间分析的主要挑战。包含d个维度的数据有2d-1个子空间。另一方面,虽然子空间聚类算法可以帮助我们找到包含聚类的潜在有价值子空间,但这类算法存在三个方面的问题:(1)产生的子空间数量依然过多;(2)结果存在冗余,即其中部分子空间十分相似;(3)结果存在偏差,即算法会过度强调某些维度,使它们在产生的子空间中出现的频率显著高于其他维度。面对这些问题,本文 [1]提出从语义角度生成和分析子空间的新范例(图1)。其核心思路是根据维度语义来生成子空间。

图1:从语义角度生成和分析子空间的范例。

接下来我们结合案例介绍文章的技术细节。案例使用菲律宾家庭收入和支出数据集。每个数据项表示一个家庭。每个家庭都由44个维度表征,包括按支出项目分列的消费水平和现金收入来源等。

范例中的第一步是语义空间生成。它包含两类输入。第一类是如维基百科页面的一般文本和特定领域文本,它们用作训练通用词嵌入的语料库。第二类是高维数据的维度标签和相应元数据。将它们喂入已训练好的词嵌入后,系统可以得到维度的语义向量。语义向量的投影结果如图2所示。可以看到,与支出相关的维度形成了一个大聚类。在聚类内部,与食品支出相关的维度位于右侧,与公用事业支出相关的维度位于左侧。

图2:语义空间生成。

范例第二步是概念维度分组。它包含两个步骤。首先是语义空间校正。由通用词嵌入自动计算得到的初始维度标签位置可能不是很准确。词义模糊是原因之一。用户可以通过拖动来调整标签位置。如图3所示,餐厅支出和租房收入相距过近,用户将它们移至更合适的位置。接下来是生成语义子空间。它们最初通过在维度语义空间执行聚类算法生成,用户仍可以手动修改子空间的维度组成。每个子空间的维度用一种独特的颜色编码。

图3:概念维度分组。

范例第三步是语义子空间投影。每个子空间通过PCA投影至二维空间,通过双标图(biplot)可视化。除了通过点展示数据项外,双标图中还包含维度轴(图4)。轴的幅度代表对应维度对投影的贡献程度,方向表明贡献的方向。在图4所示的食品支出子空间中,谷物主食维度Crop、Bread/Cereals和Rice与其他维度的方向不同,这引起了用户兴趣。用户通过刷选选中在这些维度中数值相对较高的家庭,并创建一个子聚类(编码为红色)。

图4:语义子空间投影。

第四步是语义子空间再投影,用于观察已创建子聚类在其他子空间中的行为。如图5所示,用户在公用事业支出子空间中评估之前创建的在谷物主食维度花费较多的家庭的行为。可以看到,该子聚类紧靠轴的起点,这表明这些家庭虽然在谷物上的支出很高,但在住房、衣物等公用事业上的支出却不多。他们似乎过着简单的生活。

图5:语义子空间再投影。

此外,范例支持语义子空间增强。系统自动向选中子空间中添加聚类质量提升最大的维度,从而支持用于识别特定语义子空间之外可能存在的模式。在图6中,用户首先选择公用事业支出高的家庭并将他们编码为红色。然后他使用增强功能,维度“电力”被自动加入子空间。新的子空间中有两个聚类:有电家庭和无电家庭(底部的新聚类)。并且,所有公用事业支出高的家庭都有电,而电家庭的公用事业支出都很低。

图6:语义子空间增强。

最后,范例还支持用户手动构建新的子空间。如图7所示,用户对不同年龄组家庭之间的对比感兴趣。他构建了一个由年龄属性“成员小于5岁”、“成员5-17岁”和“户主年龄”的新子空间,并且将包含5岁以下儿童的家庭标记为黄色,将包含5-17岁儿童的家庭标记为红色。在另一个新构建的电子产品所有权子空间中,用户发现子女年龄较大的家庭似乎拥有更多的电子产品,因为红点沿着维度轴分布得更远。

图7:手动构建新的子空间。

1. Salman Mahmood and Klaus Mueller. Interactive Subspace Cluster Analysis Guided by Semantic Attribute Associations. IEEE Transactions on Visualization and Computer Graphics, Early Access.

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>