Autocorrélation NumPy
En science des données, les variables d’un ensemble de données peuvent être liées les unes aux autres d’une manière ou d’une autre. La relation peut être directement proportionnelle ou indirectement proportionnelle. Un simple changement dans une variable peut changer une variable légèrement ou peut-être de façon drastique. Ce phénomène est connu sous le nom de corrélation.
L’autocorrélation fait référence à une corrélation entre un ensemble de signaux horaires et une version obsolète ou ancienne de lui-même. Les deux ensembles de signaux horaires ont une certaine différence de temps entre eux.
Calculer l’autocorrélation dans NumPy
La robuste bibliothèque de science des données, NumPy, a une fonction intégrée, correlate()
, qui peut être utilisée pour trouver une corrélation entre deux séquences 1D. Il accepte deux tableaux 1D et un type de mode.
Le type de mode peut être valid
, same
, et full
, et ce paramètre est facultatif. La valeur par défaut de ce paramètre est valid
.
Pour en savoir plus sur cette fonction, consultez les documents officiels
import numpy
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray = numpy.array(myArray)
result = numpy.correlate(myArray, myArray, mode="full")
result = result[result.size // 2 :]
print(result)
Production:
[385 330 276 224 175 130 90 56 29 10]
Dans le code ci-dessus, nous définissons d’abord une liste de nombres puis la convertissons en un tableau NumPy en utilisant la méthode array()
de NumPy. Ensuite, nous appelons notre méthode d’intérêt correlate()
pour calculer l’autocorrélation de nos données. Nous utilisons le mode full
pour les calculs.
Les résultats sont stockés dans une variable result
puis découpés en tranches. La partie tranchage est cruciale puisque la méthode correlate()
retourne un tableau de taille 2 * longueur de notre tableau - 1
, et les valeurs de notre intérêt se situent dans la seconde moitié, c’est-à-dire [(result.size // 2), result.size)
.