algorithm - 嘈杂数据集中的二维模式匹配

标签 algorithm pattern-matching cluster-analysis

我有一个数据集,由 RFID 天线在两个人移动的 2D x,y 位置上给出。一个人携带 3 个 RFID 标签,而另一个人携带 4 个标签。两者都沿着 y 轴移动,如下所示。红色和青色是路径,两个人在走。

enter image description here

x,y 比例的位置图如下所示。

enter image description here

理想情况下,橙色、黄色、蓝色和灰色线(RFID x、y 数据点)应该位于正水平线上,而下面的绿色、深蓝色和天蓝色线应该位于负水平线上。

问题 虽然线条不是直线,但出现了一种视觉模式,可以将零线以上聚集在一起,零线以下聚集在一起。我的问题是可以使用什么算法/方法来比较这些模式并将它们聚集在一起。 (所以理想情况下答案应该是,4 行以上在一个集群中,3 行以下在另一个集群中。)

很难将其视为线性运动,因为人们可以以非线性方式行走。所以最佳拟合线不起作用。非常感谢任何建议或阴影。

最佳答案

您想了解聚类时间序列 (1d) 或轨迹 (2d) 的方法。

两者的方法几乎相同。首先,你想找到一个合适的距离度量(相异性度量),其次,你决定一个合适的聚类算法。

可能的距离度量

以下是您可以使用的一些距离示例,每个距离都有一些简短的参数:

  • 欧氏距离:非常基础
  • 动态时间环绕 (DTW):可以解释轮类
  • Longuest Common Subsequence (LCSS):考虑到偏移并可以处理异常值
  • 使用 Real Penalty (EDP) 编辑距离:考虑到偏移并可以处理异常值

例如,可以在 this paper 中找到更多详细信息。 .可以找到距离的实现 here .

可能的聚类算法

您通常可以将任何距离度量与任何基于距离的聚类算法相结合。

意见

查看您的数据,我会尝试将 DTW 作为距离度量。如果您期望两个集群,那么 k=2 的 K-Means 应该可以工作。否则你可以尝试单链接聚类,它会给你类似于下图的东西。

DTW+SLC

关于algorithm - 嘈杂数据集中的二维模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546672/

相关文章:

.net - 为什么点符号在此正则表达式中不起作用?

java - 如何使用 ELKI 库使用距离矩阵对数据进行聚类?

python - 如何通过特征重要性来解释文本聚类结果? (DBSCAN)

python - 如何计算聚类的量化误差?

java - 获得两组点之间最近对的最佳组合

c++ - 适用于任何输入的施特拉森算法

algorithm - 与 DFA 相比,NFA 的优缺点?

.net - 将标识符模式与 `as` 模式相结合

c# - 在数字列表中生成数字范围

Scala,对通用特征元组进行模式匹配,检查类型是否相等