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?

王林
Lepaskan: 2023-09-26 21:43:48
asal
1406 orang telah melayarinya

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
Salin selepas log masuk

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'),  # 预测结果路径
}
Salin selepas log masuk

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()
Salin selepas log masuk

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
Salin selepas log masuk

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})
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan