تحديث عام 2023: نناقش خططنا لمستقبل النبي في منشور المدونة هذا: facebook/prophet في عام 2023 وما بعده
النبي هو إجراء للتنبؤ ببيانات السلاسل الزمنية بناءً على نموذج إضافي حيث تتناسب الاتجاهات غير الخطية مع الموسمية السنوية والأسبوعية واليومية، بالإضافة إلى تأثيرات العطلات. إنه يعمل بشكل أفضل مع السلاسل الزمنية التي لها تأثيرات موسمية قوية ومواسم متعددة من البيانات التاريخية. النبي قوي في التعامل مع البيانات المفقودة والتحولات في الاتجاه، وعادةً ما يتعامل مع القيم المتطرفة بشكل جيد.
النبي هو برنامج مفتوح المصدر تم إصداره من قبل فريق علوم البيانات الأساسية في فيسبوك. وهو متاح للتنزيل على CRAN وPyPI.
Prophet عبارة عن حزمة CRAN لذا يمكنك استخدام install.packages
.
install.packages( ' prophet ' )
بعد التثبيت، يمكنك البدء!
install.packages( ' remotes ' )
remotes :: install_github( ' facebook/prophet@*release ' , subdir = ' R ' )
يمكنك أيضًا اختيار واجهة خلفية تجريبية بديلة تسمى cmdstanr
. بمجرد تثبيت prophet
، اتبع هذه التعليمات لاستخدام cmdstanr
بدلاً من rstan
كواجهة خلفية:
# 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 " )
في نظام التشغيل Windows، يتطلب R مترجمًا، لذا ستحتاج إلى اتباع الإرشادات المقدمة من rstan
. الخطوة الأساسية هي تثبيت Rtools قبل محاولة تثبيت الحزمة.
إذا كان لديك إعدادات برنامج التحويل البرمجي Stan المخصصة، فقم بالتثبيت من المصدر بدلاً من ثنائي CRAN.
النبي موجود على PyPI، لذا يمكنك استخدام pip
لتثبيته.
python -m pip install prophet
بعد التثبيت، يمكنك البدء!
يمكن أيضًا تثبيت النبي من خلال conda-forge.
conda install -c conda-forge prophet
للحصول على أحدث تغييرات التعليمات البرمجية عند دمجها، يمكنك استنساخ هذا الريبو والبناء من المصدر يدويًا. هذا ليس مضمونا أن يكون مستقرا.
git clone https://github.com/facebook/prophet.git
cd prophet/python
python -m pip install -e .
افتراضيًا، سيستخدم Prophet إصدارًا ثابتًا من cmdstan
(تنزيله وتثبيته إذا لزم الأمر) لتجميع الملفات التنفيذية للنموذج. إذا كان هذا غير مرغوب فيه وكنت ترغب في استخدام تثبيت cmdstan
الموجود لديك، فيمكنك تعيين متغير البيئة PROPHET_REPACKAGE_CMDSTAN
إلى False
:
export PROPHET_REPACKAGE_CMDSTAN=False ; python -m pip install -e .
تأكد من تثبيت المترجمين (gcc، g++، build-essential) وأدوات تطوير Python (python-dev، python3-dev). في أنظمة Red Hat، قم بتثبيت الحزمتين gcc64 وgcc64-c++. إذا كنت تستخدم جهازًا افتراضيًا، فاعلم أنك ستحتاج إلى ذاكرة سعة 4 جيجابايت على الأقل لتثبيت Prophet، و2 جيجابايت على الأقل من الذاكرة لاستخدام Prophet.
يتطلب استخدام cmdstanpy
مع Windows مترجم C متوافق مع Unix مثل mingw-gcc. إذا تم تثبيت cmdstanpy أولاً، فيمكن تثبيته عبر الأمر cmdstanpy.install_cxx_toolchain
.
y
سجل، وخطأ في القسمة صفر في مقاييس التحقق من الصحة.NDArray[np.float_]
إلى NDArray[np.float64]
ليكون متوافقًا مع numpy 2.0 holidays
بناءً على إصدار العطلات 0.57.scaling
الوسيطة إلى إنشاء مثيل Prophet()
. يسمح بتحجيم minmax
على y
بدلاً من تحجيم absmax
(القسمة على القيمة القصوى). scaling='absmax'
بشكل افتراضي، مع الحفاظ على سلوك الإصدارات السابقة.holidays_mode
إلى إنشاء مثيل Prophet()
. يسمح لمرتدي العطلات بالحصول على وضع مختلف عن التراجعات الموسمية. يأخذ holidays_mode
نفس قيمة seasonality_mode
إذا لم يتم تحديده، مع الحفاظ على سلوك الإصدارات السابقة.Prophet
: preprocess()
calculate_initial_params()
. لا يلزم استدعاء هذه العناصر ولن تغير عملية تركيب النموذج. والغرض منها هو توفير الوضوح بشأن خطوات المعالجة المسبقة المتخذة (قياس y
، وإنشاء سلسلة فورييه، وقياس الانحدار، وتحديد نقاط التغيير، وما إلى ذلك) قبل تمرير البيانات إلى نموذج ستان.extra_output_columns
إلى cross_validation()
. يمكن للمستخدم تحديد أعمدة إضافية من predict()
لتضمينها في المخرجات النهائية إلى جانب ds
و yhat
، على سبيل المثال extra_output_columns=['trend']
.hdays
المخصصة للنبي في الإصدار الأخير وتمت إزالتها الآن. holidays
بناءً على إصدار العطلات 0.34.holidays
الخاصة بالعطلات الريفية.holidays
بناءً على إصدار العطلات 0.25..predict()
بما يصل إلى 10x عن طريق إزالة إنشاءات DataFrame المتوسطة.train()
predict()
.construct_holiday_dataframe()
holidays
بناءً على إصدار العطلات 0.18.pystan2
بـ cmdstan
+ cmdstanpy
.stan
، وحسابات مترية التحقق من الصحة، والعطلات.holidays
pandas
holidays
pandas
.cmdstanpy
متاحة الآن في بايثونالنبي مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.