2011-03-09 45 views
0

我有一组包含相同数量条目的向量。我一直在谷歌搜索一段时间,但我还没有发现任何有用的:使用双向量进行模式识别

有没有办法检测这些数字模式?

的载体是这样的:

{840.2,842.1,...,} { 840.3,843.1,...,} ....

+4

你是什么意思a * pattern *? – fouronnes 2011-03-09 22:37:00

+1

你在找什么样的图案?更多的Mensa难题或大趋势?这些数据来自哪里? – julkiewicz 2011-03-09 22:37:02

+2

我不认为有机会得到有用的答案,除非你解释你想找什么样的模式,或者有人碰巧猜对了。前者似乎是一个更好的选择。所以:你在寻找什么样的模式? – 2011-03-09 22:37:54

回答

0

分析数据,我建议编写一个程序将数据放入逗号分隔值格式的文件中,然后将该文件输入到电子表格中。电子表格已经有很好的功能来分析数据。

一个好的项目是使用(实现)神经网络来分析数据。在网上搜索“神经网络C++”。

+0

我已经想到了神经网络,并发现了一些非常有趣的事情。基本原则对我来说很清楚,但我不知道从哪里开始以及如何实施。 – 2011-03-10 11:34:51

0

根据上面的评论,我想你会对cross-correlation感兴趣。

的基本思想是,你有两个向量(长度之一和长度Ñ,其中Ñ通常比小得多的一个),并创建一个第三向量(长度的 m- n)其值表示较小的向量与特定点处较大的一部分相匹配的程度。

的基本算法是这样的:

for i = 0 to m - n 
    output[i] = 0 
    for j = 0 to n 
     output[i] = output[i] + (v0[i + j] * v1[j])^2 

在输出向量的最大值的索引是其中较小的输入最好向量匹配越大。

这个天真的实现非常慢,但是在上面的链接的Properties部分中,我们看到我们可以使用FFT来快速计算互相关。

+0

这个算法中的事情是,我的矢量尺寸完全相同,所以这根本不会运行。但是,感谢这个想法。 – 2011-03-10 11:38:49

0

您也可以使用像cosine similarity这样的指标来确定两个向量的相似程度。如果所有的矢量都遵循类似的趋势,那么它们的余弦相似性也应该是相似的。

+0

好吧,我刚刚实现余弦相似性。我认为这不够精确。我只得到1的结果或者真的接近1(例如0.999994),但是感谢这个想法。 – 2011-03-10 22:20:17