[PYTHON] Construction du modèle de prédiction ①

Créez petit à petit un algo de prévision de la demande tout en jouant avec la formule. Tout en touchant diverses mathématiques et en déraillant, je vise quelque chose qui finira par devenir un papier.

Estimation de la courbe des signes avec l'expansion de Taylor

L'expansion de Teylor est exprimée par la formule suivante.

f\left(x\right)=\sum_{n=0}\frac{f^{\left(n\right)}\left(a\right)}{n!}\left(x-a\right)^{n}

Supposons $ x = a + 1 $ dans l'équation ci-dessus. Ensuite, cela devient comme suit.


f\left(a+1\right)=\sum_{n=0}^{\infty}\frac{f^{\left(n\right)}\left(a\right)}{n!}\left(a+1-a\right)^{n}\\=f\left(a\right)+\sum_{n=1}^{\infty}\frac{f^{\left(n\right)}\left(a\right)}{n!}

Si vous donnez $ a $ à cette fonction $ f $, vous obtenez $ f $ de $ a + 1 $. En d'autres termes, lorsque la valeur de l'heure précédente est obtenue, c'est comme prédire la valeur de l'heure suivante. Donnez une courbe sinusoïdale à titre d'essai. Cela devient la formule suivante.

\sin\left(a+1\right)=\sin\left(a\right)+\cos\left(a\right)-\frac{\sin\left(a\right)}{2!}-\frac{\cos\left(a\right)}{3!}+\frac{\sin\left(a\right)}{4!}+\cdots

Tracons avec python.

from numpy import *
from pylab import *
%matplotlib inline

x = arange(100) / 10 * pi
y = sin(x) #Courant


n = 1
z =0 #Prévoir
for i in range(10):
    if ((i + 2) // 2) % 2:
        op = 1
    else:
        op = -1
    
    n *= i if  i else 1
    if i % 2:
        z += op * cos(x) / n
    else:
        z += op * sin(x) / n
  
plot(x, y,"r",label="now");plot(x,z,"b", label="pred");legend();show()

Unknown.png

Le futur (bleu: préd) au présent (rouge: maintenant) Depuis que je prédis, il semble que le bleu soit légèrement décalé vers la gauche du rouge.

Ce déphasage doit être de 1, alors essayez de décaler le bleu de 1.

x2 = arange(100) / 10 * pi + 1 #Décalez la phase de 1
plot(x, y,"r",label="now");plot(x2,z,"b", label="pred");legend();show()

Unknown.png

Il se chevauchait exactement. Je peux prédire. Avec une précision arbitraire (cependant, elle est limitée à une différenciation continue) tant que la ** forme fonctionnelle ** peut être définie Il semble que vous puissiez le prédire. Mais ni les données financières ni les données d'achat n'ont de système fonctionnel à l'avance. (Je suis content si je l'ai), Vous devez créer une sorte de modèle de prédiction (formule).

Recommended Posts

Construction du modèle de prédiction ①
estimation personnelle en temps réel (construction d'un nouveau modèle)
Modèle de prédiction de langage par TensorFlow
[Kaggle] Construction du modèle de base, traitement du pipeline
Analyse des séries chronologiques 4 Construction du modèle SARIMA
Modèle de prédiction de température fonctionnant sur edgetpu (corail)