我正在尝试开发一种算法,该算法可以报告数据集之间出现类似模式的频率和接近度。
简单的例子:
set1 = [0, 1, 0, 0, 2, 0, 0, 3, 0]
set2 = [1, 2, 3, 0, 0, 0, 0, 0, 0]
set3 = [0, 0, 0, 0, 0, 1, 2, 0, 3]
这些集合中的每一个都有一个 1、2 和 3,但这些数字在 set2 和 set3 中更接近。
我怀疑我可以通过列表推导来完成这项任务。我可以将数据绘制到变量 x 和 y 中,并将每个匹配项编入一个列表列表,其中一个嵌入式列表中的第一个元素是找到的匹配字符串,第二个和第三个元素是它们的位置。我可以通过另一个函数运行这个列表,该函数计算这些匹配发生的频率和接近程度,并报告一个百分比。
或者也许有更优雅的方式来做到这一点?
我仍然是一个 Haskell 新手。任何意见,将不胜感激。