2

TL;DR:鉴于整个数据集不可用并且您正在处理不断变化的环境的集群,如何规范化流数据

你好!我目前正在研究非平稳数据流的动态聚类。我需要对数据进行归一化, 因为所有特征在最终聚类中都应该有相同的影响,但我不知道该怎么做......

我需要应用标准规范化。我最初的方法是:

  1. 初始数据填充缓冲区
  2. 使用这些数据点来获得平均值标准差
  3. 使用这些措施来标准化当前数据点
  4. 将那些标准化的点一一发送到算法
  5. 使用之前的措施将传入的数据点标准化一段时间
  6. 每隔一段时间再计算一次均值标准差
  7. 用新措施表示当前的微集群质心(使用旧的措施,返回并再次标准化应该不是问题)
  8. 使用新措施将传入数据点标准化一段时间
  9. 等等 ....

问题是标准化数据不应该涉及聚类算法的作用......我的意思是,你无法告诉聚类算法'好的,你到目前为止所拥有的微集群需要用这个新的平均值进行标准化和stdev' ...我的意思是,我开发了一个算法,我可以做到这一点,但我也在使用现有的算法(clustream和denstream),我觉得修改它们以便能够做到这一点是不对的...... ..

有任何想法吗?

TIA

4

2 回答 2

1

数据归一化会影响依赖于 L2 距离的算法的聚类。因此,您无法真正为您的问题提供全球解决方案。

如果您的聚类算法支持它,一种选择是通过以下方式使用带有热启动的聚类:

  • 在每一步,使用根据新均值和标准偏差重新归一化的样本从头开始找到“进化”的集群
  • 不要随机初始化集群,而是使用在上一步中找到的集群,如新空间中所示。
于 2020-04-04T13:06:00.887 回答
1

随着更多数据流入,估计的标准化参数(例如,平均值和标准差)被更新并进一步收敛到真实值 [ 1 , 2 , 3]。在不断发展的环境中,它更加明显,因为数据分布现在也是随时间变化的 [ 4 ]。因此,使用更新的估计标准化参数标准化的更新的流样本更准确和具有代表性。

一种解决方案是通过在聚类算法的更新规则中嵌入一个新的衰减参数来将现在与过去的部分反映合并。它提高了使用更新分布估计标准化的更新样本的贡献。你可以在 Apache Sparks MLib [ 5 , 6 , 7 ]中看到这个想法的实现:

在此处输入图像描述

其中 α 是新的衰减参数;较低的 α 使算法更偏爱最近的样本。

于 2020-04-03T01:34:03.013 回答