[PYTHON] Prédiction de séries chronologiques facile avec Prophet

1.Tout d'abord

Récemment, j'ai essayé d'utiliser Prophet pour prédire facilement les séries chronologiques. Comme c'est un gros problème, j'ai décidé de tout partager, de l'introduction à l'opération, j'ai donc écrit un article.

2. Qu'est-ce que Prophet?

Prophet est un package de prédiction de séries chronologiques publié par facebook sous le nom d'OSS (licence MIT). La théorie détaillée n'est pas abordée ici, mais les prédictions sont faites à l'aide d'un modèle additif généralisé.

Page officielle github

3. Créez un environnement virtuel pour la vérification et basculez vers l'environnement virtuel

python


#prophet_Un environnement virtuel appelé env est python3.Créé avec 7 séries(3.8 série fbprophet 0.Non compatible avec 6)
conda create -n prophet_env python=3.7

#prophète créé à partir de l'environnement de base_env Passer à l'environnement virtuel
conda activate prophet_env

4. Contrôle de l'installation-fonctionnement

Tout d'abord, installez la communauté Visual Stuido.

Ensuite, installez les bibliothèques suivantes

python


#Prophet introduit parce que cela dépend de PyStan
conda install plotly -y

#Introduction de fbprophet(2020/11/La version à 1 est 0.7.C'était 1, mais j'ai eu une erreur, donc 0.6)
conda install -c conda-forge fbprophet==0.6

#Parce que l'environnement est miniconda ...(Je n'ai pas mis numpy et pandas individuellement parce qu'ils ont été introduits ensemble dans ↑)
conda install matplotlib

Installation réussie si aucune erreur ne se produit avec la commande suivante

python


from fbprophet import Prophet

5. En fait, utilisez

Cette fois, nous utiliserons un ensemble de données simple appelé «passagers aériens» comme exemple d'ensemble de données. La colonne Mois contient la partie série chronologique et la colonne Passagers contient les changements du nombre de passagers. Lien de l'ensemble de données

Month #Passengers
1949/1/1 112
1949/2/1 118
1949/3/1 132

5-1: Jusqu'à la lecture du fichier

python


import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet

#Lire le csv des passagers aériens
df = pd.read_csv('AirPassengers.csv')

5-2: Apprendre le prophète

python


#Prophet doit changer les noms des colonnes en ds et y, alors changez-les
df.columns = ['ds', 'y']

#Cette fois, apprenez de l'arrière de la trame de données au 10 dans Prophet(fit)Laisser
m = Prophet()
m.fit(df[:-10])

5-3: Prédite par le prophète

python


'''
periods=Prédire 10:10 carrés
freq='M': L'unité est "Mois"
→ En d'autres termes, cela signifie prédire sur 10 mois
'''
future = m.make_future_dataframe(periods=10, freq='M')

forecast = m.predict(future)

#Illustrer le résultat des prévisions
fig = m.plot(forecast)

Il devrait être affiché comme ↓.

6. Enfin

Comment était-ce? Le programme lui-même fonctionne facilement, il peut donc être plus difficile à installer. Différentes versions pourraient provoquer une erreur quelque part, et en fait, je suis tombé là-bas au début. (PyStan, libpython, etc. ont été introduits avec fbprophet == 0.6, ils n'ont donc pas été introduits individuellement à la fin) C'est facile, alors essayez-le.

Recommended Posts

Prédiction de séries chronologiques facile avec Prophet
Prédiction des données de séries chronologiques par projection simplex
Prédire les données de séries chronologiques avec un réseau neuronal
Jouez avec Prophet
Décomposition des séries temporelles
Voir les détails des données de séries chronologiques dans Remotte
✨ Facile avec Python ☆ Temps écoulé estimé après la mort ✨
Question sur la série chronologique Python
Analyse des séries chronologiques RNN_LSTM1
Analyse des séries chronologiques 1 Principes de base
Prédiction de données chronologiques par AutoML (apprentissage automatique automatique)
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
Débogage facile avec ipdb
Afficher les séries chronologiques TOPIX
Diagramme de séries chronologiques / Matplotlib
TopView facile avec OpenCV
Prédire à partir de diverses données en Python à l'aide de l'outil de prédiction de séries chronologiques Facebook Prophet
J'ai créé un package pour filtrer les séries chronologiques avec python
Reformatez l'axe des temps du graphique de la série chronologique des pandas avec matplotlib
Défi des prévisions de ventes futures: ⑤ Analyse des séries chronologiques par Prophet
Environnement toxique facile avec Jenkins
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Entrée standard avec limite de temps
Synchronisation facile des dossiers avec Python
Rendre avec la syntaxe facile
Grattage Web facile avec Scrapy
Prédiction de la moyenne Nikkei avec Pytorch 2
Mesure du temps d'exécution avec Python avec
Analyse des séries chronologiques partie 4 VAR
Analyse de séries chronologiques Partie 3 Prévisions
Compilation facile de Python avec NUITKA-Utilities
[Python] Tracer des données de séries chronologiques
Serveur HTTP facile avec Python
Connexion proxy facile avec django-hijack
Prédiction de la moyenne Nikkei avec Pytorch
Analyse de séries chronologiques Partie 1 Autocorrélation
Synchronisation de l'heure (Windows) avec Python
Comment extraire des fonctionnalités de données de séries chronologiques avec les bases de PySpark
Comparaison de la prédiction des données de séries chronologiques entre le modèle SARIMA et le modèle Prophet