Maison  >  Article  >  développement back-end  >  Comment utiliser Django Prophet pour la prévision de séries chronologiques ?

Comment utiliser Django Prophet pour la prévision de séries chronologiques ?

王林
王林original
2023-09-27 12:09:09678parcourir

如何使用Django Prophet进行时间序列预测?

Comment utiliser Django Prophet pour la prévision de séries chronologiques ?

Les séries chronologiques sont un type de données qui a de l'importance dans de nombreux domaines. Il s’agit d’analyser et de prévoir des données temporelles. Dans l’écosystème de science des données Python, il existe de nombreux outils et bibliothèques pour la prévision de séries chronologiques. Parmi eux, Prophet est une bibliothèque puissante et facile à utiliser développée par Facebook qui peut effectuer des prévisions de séries chronologiques de manière rapide et précise.

Dans cet article, nous expliquerons en détail comment utiliser Django Prophet pour la prévision de séries chronologiques. Nous aborderons des aspects tels que la préparation des données, la formation de modèles et la prédiction, avec des exemples de code concrets.

1. Installez et présentez Django Prophet

Tout d'abord, nous devons installer Django Prophet via pip. Exécutez la commande suivante dans le terminal :

pip install django-prophet

Après avoir terminé l'installation, nous devons introduire Django Prophet dans le projet Django. Ajoutez django_prophet à la liste INSTALLED_APPS dans le fichier settings.py : INSTALLED_APPS列表中添加django_prophet

INSTALLED_APPS = [
    ...
    'django_prophet',
    ...
]

2. 准备数据

在进行时间序列预测之前,我们需要有一个包含时间戳和相关值的数据集。在这个示例中,我们将使用一个包含每日销售额的CSV文件。首先,将CSV文件放在项目的某个目录下,并在models.py文件中创建一个模型类来表示数据:

from django.db import models

class Sales(models.Model):
    date = models.DateField()
    value = models.FloatField()

然后,运行以下命令以创建数据表格:

python manage.py makemigrations
python manage.py migrate

接下来,我们需要使用Django的数据迁移功能将CSV文件中的数据导入到数据库中。为此,我们可以创建一个自定义的Django管理命令。在项目的某个目录下创建一个名为import_sales.py的文件,并添加以下代码:

from django.core.management.base import BaseCommand
import csv
from datetime import datetime
from myapp.models import Sales

class Command(BaseCommand):
    help = 'Import sales data from CSV file'

    def add_arguments(self, parser):
        parser.add_argument('csv_file', type=str, help='Path to the CSV file')

    def handle(self, *args, **options):
        csv_file = options['csv_file']
        with open(csv_file, 'r') as file:
            reader = csv.reader(file)
            for row in reader:
                date = datetime.strptime(row[0], '%Y-%m-%d').date()
                value = float(row[1])
                Sales.objects.create(date=date, value=value)

运行以下命令导入数据:

python manage.py import_sales path/to/csv/file.csv

3. 训练模型和预测

接下来,我们将使用Django Prophet来训练模型并进行时间序列预测。首先,在models.py文件中添加以下代码:

from django.db import models
from django_prophet.models import BaseModel

class Sales(BaseModel):
    date = models.DateField()
    value = models.FloatField()

然后,在命令行中运行以下命令以创建和训练模型:

python manage.py prophet_create_model myapp.Sales

这将创建一个Prophet模型,并将其保存在数据库中以供后续使用。

现在,我们可以使用模型进行预测。在命令行中运行以下命令:

python manage.py prophet_make_forecast myapp.Sales

这将为每个日期生成一个预测值,并将其保存在数据库中。

最后,我们可以在视图中使用预测结果。在views.py文件中添加以下代码:

from django.shortcuts import render
from myapp.models import Sales

def sales_chart(request):
    sales = Sales.objects.all()
    predictions = [sale.prophet_prediction for sale in sales]
    
    context = {
        'sales': sales,
        'predictions': predictions
    }
    
    return render(request, 'sales_chart.html', context)

在templates文件夹中创建一个名为sales_chart.html的HTML模板,该模板用于显示销售数据和预测结果。

现在,当用户访问/sales_chartrrreee

2 Préparez les données

Avant de faire des prédictions de séries chronologiques, nous devons avoir un horodatage contenant et un ensemble de données de valeurs liées. Dans cet exemple, nous utiliserons un fichier CSV contenant les ventes quotidiennes. Tout d'abord, placez le fichier CSV dans un répertoire de votre projet et créez une classe de modèle dans le fichier models.py pour représenter les données :

rrreee

Ensuite, exécutez la commande suivante pour créer la table de données :

rrreee

Ensuite, nous avons besoin Utilisez la fonction de migration de données de Django pour importer les données du fichier CSV dans la base de données. Pour ce faire, nous pouvons créer une commande d'administration Django personnalisée. Créez un fichier nommé import_sales.py dans un répertoire du projet et ajoutez le code suivant : 🎜rrreee🎜Exécutez la commande suivante pour importer des données : 🎜rrreee🎜3. Modèle d'entraînement et prédiction🎜🎜Connectez-vous ensuite. , nous utiliserons Django Prophet pour entraîner le modèle et effectuer des prévisions de séries chronologiques. Tout d'abord, ajoutez le code suivant dans le fichier models.py : 🎜rrreee🎜 Ensuite, exécutez la commande suivante dans la ligne de commande pour créer et entraîner le modèle : 🎜rrreee🎜 Cela créera un modèle Prophet et l'enregistrera dans la base de données pour plus tard. utiliser. 🎜🎜Maintenant, nous pouvons utiliser le modèle pour faire des prédictions. Exécutez la commande suivante dans la ligne de commande : 🎜rrreee🎜 Cela générera une valeur prédite pour chaque date et l'enregistrera dans la base de données. 🎜🎜Enfin, nous pouvons utiliser les résultats de la prédiction dans la vue. Ajoutez le code suivant dans le fichier views.py : 🎜rrreee🎜Créez un modèle HTML nommé sales_chart.html dans le dossier des modèles, qui est utilisé pour afficher les données de ventes et les résultats des prévisions. 🎜🎜Désormais, lorsque l'utilisateur visite la page /sales_chart, les données de ventes et les graphiques de prévisions seront affichés. 🎜🎜Conclusion🎜🎜Cet article explique comment utiliser Django Prophet pour la prévision de séries chronologiques. Nous couvrons la préparation des données, la formation des modèles et la prédiction, et fournissons des exemples de code concrets. En utilisant Django Prophet, nous pouvons effectuer facilement et avec précision des prévisions de séries chronologiques pour fournir un soutien solide aux décisions commerciales. 🎜🎜Veuillez noter que cet article ne fournit que des exemples et une utilisation de base, vous pouvez apporter davantage de personnalisations et d'améliorations en fonction de vos besoins spécifiques. J'espère que cet article vous a été utile et je vous souhaite du succès dans l'analyse et la prévision de séries chronologiques ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn