Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Django Prophet untuk ramalan siri masa?

Bagaimana untuk menggunakan Django Prophet untuk ramalan siri masa?

王林
王林asal
2023-09-27 12:09:09727semak imbas

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

Bagaimana cara menggunakan Django Prophet untuk ramalan siri masa?

Siri masa ialah jenis data yang mempunyai kepentingan dalam banyak bidang. Ia melibatkan menganalisis dan meramalkan data berkaitan masa. Dalam ekosistem sains data Python, terdapat banyak alat dan perpustakaan untuk ramalan siri masa. Antaranya, Nabi ialah perpustakaan yang berkuasa dan mudah digunakan yang dibangunkan oleh Facebook yang boleh melakukan ramalan siri masa dengan cepat dan tepat.

Dalam artikel ini, kami akan menerangkan secara terperinci cara menggunakan Django Prophet untuk ramalan siri masa. Kami akan merangkumi aspek seperti penyediaan data, latihan model dan ramalan serta memberikan contoh kod konkrit.

1. Pasang dan perkenalkan Django Prophet

Pertama, kita perlu memasang Django Prophet melalui pip. Jalankan arahan berikut dalam terminal:

pip install django-prophet

Selepas melengkapkan pemasangan, kita perlu memperkenalkan Django Prophet ke dalam projek Django. Tambahkan django_prophet pada senarai INSTALLED_APPS dalam fail 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 Sediakan data

Sebelum membuat ramalan siri masa, kita perlu mempunyai cap waktu yang mengandungi dan. set data nilai yang berkaitan. Dalam contoh ini, kami akan menggunakan fail CSV yang mengandungi jualan harian. Mula-mula, letakkan fail CSV dalam direktori projek anda dan buat kelas model dalam fail models.py untuk mewakili data:

rrreee

Kemudian, jalankan arahan berikut untuk mencipta jadual data:

rrreee

Seterusnya, kita perlu Gunakan fungsi pemindahan data Django untuk mengimport data daripada fail CSV ke dalam pangkalan data. Untuk melakukan ini, kita boleh mencipta perintah pentadbir Django tersuai. Cipta fail bernama import_sales.py dalam direktori projek dan tambah kod berikut: 🎜rrreee🎜Jalankan arahan berikut untuk mengimport data: 🎜rrreee🎜3 Model latihan dan ramalan🎜🎜Sambung Seterusnya , kami akan menggunakan Django Prophet untuk melatih model dan melaksanakan ramalan siri masa. Mula-mula, tambah kod berikut dalam fail models.py: 🎜rrreee🎜 Kemudian, jalankan arahan berikut dalam baris arahan untuk mencipta dan melatih model: 🎜rrreee🎜 Ini akan mencipta model Nabi dan menyimpannya dalam pangkalan data untuk kemudian. guna. 🎜🎜Kini, kita boleh menggunakan model untuk membuat ramalan. Jalankan arahan berikut dalam baris arahan: 🎜rrreee🎜 Ini akan menjana nilai ramalan untuk setiap tarikh dan menyimpannya dalam pangkalan data. 🎜🎜Akhir sekali, kita boleh menggunakan hasil ramalan dalam paparan. Tambahkan kod berikut dalam fail views.py: 🎜rrreee🎜Buat templat HTML bernama sales_chart.html dalam folder templat, yang digunakan untuk memaparkan data jualan dan hasil ramalan. 🎜🎜Kini, apabila pengguna melawat halaman /sales_chart, data jualan dan carta ramalan akan dipaparkan. 🎜🎜Kesimpulan🎜🎜Artikel ini memperincikan cara menggunakan Django Prophet untuk ramalan siri masa. Kami meliputi penyediaan data, latihan model dan ramalan serta menyediakan contoh kod konkrit. Dengan menggunakan Django Prophet, kami boleh melaksanakan ramalan siri masa dengan mudah dan tepat untuk memberikan sokongan padu untuk keputusan perniagaan. 🎜🎜Sila ambil perhatian bahawa artikel ini hanya menyediakan penggunaan asas dan contoh, anda boleh membuat lebih banyak penyesuaian dan penambahbaikan mengikut keperluan khusus anda. Saya harap artikel ini membantu dan saya doakan anda berjaya dalam analisis dan ramalan siri masa! 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Django Prophet untuk ramalan siri masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn