如何在Python中计算标准化互相关

过去几天我一直在尝试计算两个向量对(x和y)的自由度,参考了Chelton(1983)的方法,具体如下:

根据Chelton(1983)计算的自由度

我无法找到合适的方法使用np.correlate来计算标准化的互相关函数,我得到的输出总是超出了-1到1的范围。

有没有简单的方法可以得到标准化的互相关函数,以便计算两个向量的自由度?


回答:

很好的问题。虽然没有直接的方法,但你可以在使用np.correlate之前对输入向量进行“标准化”,这样就能得到在[-1,1]范围内的合理值:

这里我定义的相关性是信号处理教科书中通常定义的方式。

c'_{ab}[k] = sum_n a[n] conj(b[n+k])

代码:如果a和b是向量:

a = (a - np.mean(a)) / (np.std(a) * len(a))b = (b - np.mean(b)) / (np.std(b))c = np.correlate(a, b, 'full')

参考资料:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html

https://en.wikipedia.org/wiki/Cross-correlation

enter image description here

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注