双向量模式识别

时间:2011-03-09 22:34:35

标签: c++

我有一组包含相同数量条目的向量。我一直在谷歌搜索,但我没有找到任何有用的东西:

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

矢量看起来像这样:

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

3 个答案:

答案 0 :(得分:0)

为了分析您的数据,我建议编写一个程序,将数据放入逗号分隔值格式的文件,然后将文件输入电子表格。电子表格已经具有分析数据的强大功能。

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

答案 1 :(得分:0)

根据您上面的评论,我认为您会对cross-correlation感兴趣。

基本思想是你有两个向量(一个长度 m 和一个长度 n ,其中 n 通常小得多比 m )你创建了第三个向量(长度 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来更快地计算互相关。

答案 2 :(得分:0)

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