Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich Django Prophet für Zeitreihenvorhersagen?

Wie verwende ich Django Prophet für Zeitreihenvorhersagen?

王林
王林Original
2023-09-27 12:09:09773Durchsuche

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

Wie verwende ich Django Prophet für Zeitreihenvorhersagen?

Zeitreihen sind ein Datentyp, der in vielen Bereichen von Bedeutung ist. Dabei geht es um die Analyse und Prognose zeitbezogener Daten. Im Python-Data-Science-Ökosystem gibt es viele Tools und Bibliotheken für die Zeitreihenvorhersage. Unter anderem ist Prophet eine leistungsstarke und benutzerfreundliche Bibliothek, die von Facebook entwickelt wurde und schnell und genau Zeitreihenvorhersagen durchführen kann.

In diesem Artikel erklären wir ausführlich, wie man Django Prophet für die Zeitreihenvorhersage verwendet. Wir behandeln Aspekte wie Datenvorbereitung, Modelltraining und Vorhersage anhand konkreter Codebeispiele.

1. Django Prophet installieren und vorstellen

Zuerst müssen wir Django Prophet über pip installieren. Führen Sie den folgenden Befehl im Terminal aus:

pip install django-prophet

Nach Abschluss der Installation müssen wir Django Prophet in das Django-Projekt einführen. Fügen Sie django_prophet zur Liste INSTALLED_APPS in der Datei „settings.py“ hinzu: 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. Bereiten Sie Daten vor

Bevor wir Zeitreihenvorhersagen treffen, benötigen wir einen Zeitstempel mit und ein Datensatz verwandter Werte. In diesem Beispiel verwenden wir eine CSV-Datei mit Tagesverkäufen. Platzieren Sie zunächst die CSV-Datei in einem Verzeichnis Ihres Projekts und erstellen Sie eine Modellklasse in der Datei models.py, um die Daten darzustellen:

rrreee

Führen Sie dann den folgenden Befehl aus, um die Datentabelle zu erstellen:

rrreee

Als nächstes brauchen wir Verwenden Sie die Datenmigrationsfunktion von Django, um Daten aus der CSV-Datei in die Datenbank zu importieren. Dazu können wir einen benutzerdefinierten Django-Administratorbefehl erstellen. Erstellen Sie eine Datei mit dem Namen import_sales.py in einem Verzeichnis des Projekts und fügen Sie den folgenden Code hinzu: 🎜rrreee🎜Führen Sie den folgenden Befehl aus, um Daten zu importieren: 🎜rrreee🎜3. Trainingsmodell und Vorhersage🎜🎜Connect Next , werden wir Django Prophet verwenden, um das Modell zu trainieren und Zeitreihenvorhersagen durchzuführen. Fügen Sie zunächst den folgenden Code in die Datei models.py ein: 🎜rrreee🎜 Führen Sie dann den folgenden Befehl in der Befehlszeile aus, um das Modell zu erstellen und zu trainieren: 🎜rrreee🎜 Dadurch wird ein Prophet-Modell erstellt und für später in der Datenbank gespeichert verwenden. 🎜🎜Jetzt können wir das Modell verwenden, um Vorhersagen zu treffen. Führen Sie den folgenden Befehl in der Befehlszeile aus: 🎜rrreee🎜 Dadurch wird für jedes Datum ein vorhergesagter Wert generiert und in der Datenbank gespeichert. 🎜🎜Endlich können wir die Vorhersageergebnisse in der Ansicht verwenden. Fügen Sie den folgenden Code in die Datei „views.py“ ein: 🎜rrreee🎜Erstellen Sie im Vorlagenordner eine HTML-Vorlage mit dem Namen sales_chart.html, die zum Anzeigen von Verkaufsdaten und Prognoseergebnissen verwendet wird. 🎜🎜Wenn der Benutzer nun die Seite /sales_chart besucht, werden Verkaufsdaten und Prognosediagramme angezeigt. 🎜🎜Fazit🎜🎜In diesem Artikel wird detailliert beschrieben, wie Sie Django Prophet für Zeitreihenvorhersagen verwenden. Wir behandeln Datenvorbereitung, Modelltraining und Vorhersage und stellen konkrete Codebeispiele bereit. Durch den Einsatz von Django Prophet können wir einfach und genau Zeitreihenprognosen erstellen, um Geschäftsentscheidungen umfassend zu unterstützen. 🎜🎜Bitte beachten Sie, dass dieser Artikel nur die grundlegende Verwendung und Beispiele enthält. Sie können je nach Ihren spezifischen Anforderungen weitere Anpassungen und Verbesserungen vornehmen. Ich hoffe, dieser Artikel war hilfreich und wünsche Ihnen viel Erfolg bei der Zeitreihenanalyse und -prognose! 🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich Django Prophet für Zeitreihenvorhersagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn