Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah amalan terbaik untuk melaksanakan analisis siri masa dengan Django Prophet?

Apakah amalan terbaik untuk melaksanakan analisis siri masa dengan Django Prophet?

王林
王林asal
2023-09-26 21:43:481390semak imbas

Django Prophet实现时间序列分析的最佳实践是什么?

Django Prophet ialah alat analisis siri masa berdasarkan Python Ia boleh digabungkan dengan rangka kerja Django untuk melakukan analisis dan ramalan siri masa dengan mudah. Artikel ini akan memperkenalkan amalan terbaik Django Prophet dan memberikan contoh kod khusus.

1. Pemasangan dan konfigurasi

Pertama, kita perlu memasang Django Prophet dan perpustakaan bergantungnya. Ia boleh dipasang melalui arahan pip:

pip install django-prophet forecaster

Seterusnya, tambahkan konfigurasi berikut dalam fail settings.py projek Django:

INSTALLED_APPS = [
    ...
    'prophet',
    ...
]

PROPHET = {
    'MODEL_PATH': os.path.join(BASE_DIR, 'model'),  # 模型路径
    'FORECAST_PATH': os.path.join(BASE_DIR, 'forecast'),  # 预测结果路径
}

Dalam konfigurasi di atas, kami nyatakan model dan laluan penyimpanan hasil ramalan.

2. Penyediaan dan import data

Sebelum menjalankan analisis siri masa, kita perlu menyediakan data dan mengimportnya ke dalam pangkalan data Django. Anda boleh memilih format CSV atau mengimport data melalui pertanyaan pangkalan data. Berikut ialah contoh kelas model untuk menyimpan data siri masa:

from django.db import models

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

Melalui fungsi pemindahan data Django, kelas model boleh dipetakan ke jadual pangkalan data:

rreee

3. Analisis siri masa

Seterusnya, kita boleh menggunakan Django Prophet untuk analisis siri masa. Berikut ialah contoh fungsi paparan:

python manage.py makemigrations
python manage.py migrate

Kod di atas mula-mula memperoleh data siri masa daripada pangkalan data dan menukarnya menjadi objek Pandas DataFrame. Kemudian, buat model Nabi dan latihnya menggunakan data.

Seterusnya, kami menggunakan fungsi make_future_dataframe untuk menjana julat masa yang perlu diramal, dan menggunakan fungsi ramalan untuk meramal. Keputusan ramalan disimpan dalam objek ramalan.

Akhir sekali, kami menyerahkan hasil ramalan kepada templat analyze.html untuk paparan.

4. Paparan templat

Dalam templat analyze.html, kita boleh menggunakan kod berikut untuk memaparkan hasil ramalan:

from django.shortcuts import render
from prophet import Prophet

def analyze(request):
    data = TimeSeriesData.objects.all().order_by('date')
    dates = [item.date for item in data]
    values = [item.value for item in data]

    df = pd.DataFrame({'ds': dates, 'y': values})

    m = Prophet()
    m.fit(df)

    future = m.make_future_dataframe(periods=365)
    forecast = m.predict(future)

    forecast_data = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']]

    return render(request, 'analyze.html', {'forecast_data': forecast_data})

Di atas kod menggunakan gelung untuk Lelaran ke atas keputusan ramalan dan paparkan tarikh, nilai ramalan serta sempadan atas dan bawah.

Ringkasan:

Melalui langkah di atas, kita boleh melaksanakan analisis siri masa berdasarkan Django Nabi. Proses ini termasuk pemasangan dan konfigurasi, penyediaan dan import data, analisis siri masa dan pembentangan templat. Dengan mengkonfigurasi parameter dan model dengan betul, kami boleh memperoleh ramalan siri masa yang lebih tepat.

Perlu diingat bahawa contoh di atas menggunakan model linear mudah. Untuk siri masa yang kompleks, ketepatan ramalan boleh dipertingkatkan dengan melaraskan parameter model Nabi dan menambah kejuruteraan ciri.

Atas ialah kandungan terperinci Apakah amalan terbaik untuk melaksanakan analisis siri masa dengan Django Prophet?. 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