Pembaruan 2023: Kami membahas rencana kami untuk masa depan Nabi di postingan blog ini: facebook/nabi pada tahun 2023 dan seterusnya
Nabi adalah prosedur untuk memperkirakan data deret waktu berdasarkan model aditif di mana tren non-linier disesuaikan dengan musiman tahunan, mingguan, dan harian, ditambah efek hari libur. Ini berfungsi paling baik dengan deret waktu yang memiliki efek musiman yang kuat dan data historis beberapa musim. Nabi tahan terhadap data yang hilang dan perubahan tren, dan biasanya menangani outlier dengan baik.
Prophet adalah perangkat lunak sumber terbuka yang dirilis oleh tim Core Data Science Facebook. Ini tersedia untuk diunduh di CRAN dan PyPI.
Nabi adalah paket CRAN sehingga Anda dapat menggunakan install.packages
.
install.packages( ' prophet ' )
Setelah instalasi, Anda dapat memulai!
install.packages( ' remotes ' )
remotes :: install_github( ' facebook/prophet@*release ' , subdir = ' R ' )
Anda juga dapat memilih backend stan alternatif eksperimental yang disebut cmdstanr
. Setelah Anda menginstal prophet
, ikuti petunjuk berikut untuk menggunakan cmdstanr
alih-alih rstan
sebagai backend:
# R
# We recommend running this in a fresh R session or restarting your current session
install.packages(c( " cmdstanr " , " posterior " ), repos = c( " https://mc-stan.org/r-packages/ " , getOption( " repos " )))
# If you haven't installed cmdstan before, run:
cmdstanr :: install_cmdstan()
# Otherwise, you can point cmdstanr to your cmdstan path:
cmdstanr :: set_cmdstan_path( path = < your existing cmdstan > )
# Set the R_STAN_BACKEND environment variable
Sys.setenv( R_STAN_BACKEND = " CMDSTANR " )
Di Windows, R memerlukan kompiler sehingga Anda harus mengikuti instruksi yang diberikan oleh rstan
. Langkah kuncinya adalah menginstal Rtools sebelum mencoba menginstal paket.
Jika Anda memiliki pengaturan kompiler Stan khusus, instal dari sumber, bukan dari biner CRAN.
Nabi ada di PyPI, jadi Anda bisa menggunakan pip
untuk menginstalnya.
python -m pip install prophet
Setelah instalasi, Anda dapat memulai!
Nabi juga dapat diinstal melalui conda-forge.
conda install -c conda-forge prophet
Untuk mendapatkan perubahan kode terbaru saat digabungkan, Anda dapat mengkloning repo ini dan membuat dari sumber secara manual. Hal ini tidak dijamin stabil.
git clone https://github.com/facebook/prophet.git
cd prophet/python
python -m pip install -e .
Secara default, Nabi akan menggunakan versi tetap cmdstan
(mengunduh dan menginstalnya jika perlu) untuk mengkompilasi model yang dapat dieksekusi. Jika hal ini tidak diinginkan dan Anda ingin menggunakan instalasi cmdstan
yang sudah ada, Anda dapat mengatur variabel lingkungan PROPHET_REPACKAGE_CMDSTAN
ke False
:
export PROPHET_REPACKAGE_CMDSTAN=False ; python -m pip install -e .
Pastikan kompiler (gcc, g++, build-essential) dan alat pengembangan Python (python-dev, python3-dev) sudah diinstal. Di sistem Red Hat, instal paket gcc64 dan gcc64-c++. Jika Anda menggunakan VM, ketahuilah bahwa Anda memerlukan setidaknya 4 GB memori untuk menginstal nabi, dan setidaknya 2 GB memori untuk menggunakan nabi.
Menggunakan cmdstanpy
dengan Windows memerlukan kompiler C yang kompatibel dengan Unix seperti mingw-gcc. Jika cmdstanpy diinstal terlebih dahulu, dapat diinstal melalui perintah cmdstanpy.install_cxx_toolchain
.
y
, kesalahan pembagian nol dalam metrik validasi silang.NDArray[np.float_]
menjadi NDArray[np.float64]
agar kompatibel dengan numpy 2.0 holidays
diperbarui berdasarkan hari libur versi 0.57.scaling
argumen ke instantiasi Prophet()
. Mengizinkan penskalaan minmax
pada y
alih-alih penskalaan absmax
(dibagi dengan nilai maksimum). scaling='absmax'
secara default, mempertahankan perilaku versi sebelumnya.holidays_mode
ke instantiasi Prophet()
. Mengizinkan penyimpang liburan memiliki mode yang berbeda dengan penyimpang musiman. holidays_mode
mengambil nilai yang sama dengan seasonality_mode
jika tidak ditentukan, sehingga mempertahankan perilaku versi sebelumnya.Prophet
: preprocess()
dan calculate_initial_params()
. Ini tidak perlu dipanggil dan tidak akan mengubah proses pemasangan model. Tujuannya adalah untuk memberikan kejelasan tentang langkah-langkah pra-pemrosesan yang diambil ( y
, pembuatan deret fourier, penskalaan regressor, pengaturan titik perubahan, dll.) sebelum data diteruskan ke model stan.extra_output_columns
ke cross_validation()
. Pengguna dapat menentukan kolom tambahan dari predict()
untuk disertakan dalam hasil akhir bersama ds
dan yhat
, misalnya extra_output_columns=['trend']
.hdays
khusus nabi tidak digunakan lagi pada versi terakhir dan sekarang dihapus. holidays
diperbarui berdasarkan hari libur versi 0.34.holidays
untuk liburan pedesaan.holidays
diperbarui berdasarkan hari libur versi 0.25..predict()
hingga 10x dengan menghapus kreasi DataFrame perantara.train()
dan predict()
.construct_holiday_dataframe()
holidays
diperbarui berdasarkan hari libur versi 0.18.pystan2
dengan cmdstan
+ cmdstanpy
.stan
, penghitungan metrik validasi silang, hari libur.holidays
dan pandas
holidays
dan pandas
.cmdstanpy
backend sekarang tersedia dengan PythonNabi dilisensikan di bawah lisensi MIT.