שירותי ניתוח סדרות עתיות: חיזוי וזיהוי חריגים

חיזוי סדרות עתיות, זיהוי חריגים וסיווג תבניות: Prophet, NeuralProphet, TFT, PatchTST, TimesNet. מנתונים פיננסיים ועד טלמטריה של IoT.
מציג 30 מתוך 99כל 1570 השירותים
פיתוח אנליסט פיננסי דיגיטלי מבוסס AI
מורכב
מ- 2 שבועות עד 3 חודשים

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מתי מודל חיזוי סדרות עתיות נכשל בסביבת ייצור?

ה-CFO מבקש תחזית מכירות רבעונית. אנליסט בונה מודל SARIMA על שלוש שנים של נתונים, משיג MAPE של 8.3% על ערכת הבדיקה, ומעלה אותו לייצור. חודשיים לאחר מכן, המדד בייצור קופץ ל-23%. שורש הבעיה: המודל אומן על נתונים מלפני תקופת ה-COVID, נבדק על תקופה יציבה, אבל הייצור נתקל במבצע ובשיבוש בשרשרת האספקה. דליפת נתונים בתוספת שינוי התפלגות—מספרים מושלמים במחברת, תחזית שבורה במציאות. ראינו את הדפוס הזה עשרות פעמים בקמעונאות, פינטק ו-IoT. הצוות שלנו סיפק יותר מ-50 פרויקטי חיזוי במשך 5+ שנים.

חישוב צולב שגוי. train_test_split סטנדרטי לסדרות עתיות יוצר דליפת נתונים: המודל רואה ערכים עתידיים במהלך האימון. הגישה הנכונה היא TimeSeriesSplit או אימות walk-forward עם חלון מתרחב.

עונתיות מרובה. לצריכת חשמל שעתית יש שלוש עונתיות: יומית (24 שעות), שבועית (168 שעות), שנתית (8760 שעות). SARIMA מטפל רק באחת. Prophet יכול לטפל במספר עונתיות אבל לא מתרחב היטב לאלפי סדרות.

ערכים חסרים וחריגים. קריאת חיישן חסרה היא מידע (החיישן כובה), לא NaN. אינטרפולציה לינארית הורסת את האות הזה. טיפול נכון תלוי במנגנון החסר.

התחלה קרה. ל-SKU חדש במבחר של 50,000 פריטים אין היסטוריה, ובכל זאת יש צורך בתחזית. גישות סטנדרטיות נכשלות; נדרשות שיטות מבוססות למידה צולבת או מבוססות מאפיינים.

מדוע בחירת המודל קריטית לנתונים שלך?

Prophet (Meta) – התחלה מוצקה לנתונים עסקיים עם עונתיות וחגים ברורים. הגדרה מהירה, פרשני, זיהוי חריגים מובנה. נכשל על דפוסים לא סדירים ואינו מתרחב מעבר ל-~10,000 סדרות ללא מקביליות.

Gradient boosting על מאפיינים (LightGBM, XGBoost) – לעיתים קרובות מוערך בחסר. הנדסת פיגורים (t-1, t-7, t-28), ממוצעים נעים, יום בשבוע, חגים. המודל מתאמן על כל הסדרות בו-זמנית, פותר התחלה קרה באמצעות למידת העברה. MAPE בקמעונאות לעיתים קרובות מנצח רשתות נוירונים עם הנדסת מאפיינים נכונה.

TFT (Temporal Fusion Transformer) – טרנספורמר שתוכנן לחיזוי פרשני עם משתנים מסבירים. בחירת משתנים מובנית, קשב זמני, פלטי quantile. זמין ב-pytorch-forecasting. דורש ~10,000+ רשומות לכל סדרה לאימון יציב.

PatchTST – מפצל את הסדרה לפאצ'ים (כמו ViT לתמונות), לוכד דפוסים מקומיים טוב יותר מטרנספורמרים קלאסיים. מצוין לחיזוי אופק ארוך (96–720 צעדים קדימה).

N‑HiTS, N‑BEATS – ארכיטקטורות נוירונים ללא קשב, מהירות יותר מ-TFT, דיוק תחרותי. N‑BEATS זכה במדדי M4/M5 למשימות ללא משתנים מסבירים.

שיטה משתנים מסבירים קנה מידה (סדרות) פרשנות מורכבות
Prophet כן (רגרסורים) עד 10k גבוהה נמוכה
LightGBM + מאפיינים כן 100k+ בינונית בינונית
TFT כן 1k–100k גבוהה גבוהה
PatchTST לא/מוגבל כל נמוכה בינונית
N‑HiTS לא כל נמוכה נמוכה

כיצד אנו פורסים TFT בייצור?

צינור עבודה טיפוסי דרך neuralforecast:

training = TimeSeriesDataSet( data, time_idx="time_idx", target="sales", group_ids=["store", "sku"], min_encoder_length=max_encoder_length // 2, max_encoder_length=max_encoder_length, # 120 дней min_prediction_length=1, max_prediction_length=max_prediction_length, # 28 дней static_categoricals=["store_type", "category"], time_varying_known_reals=["price", "promo_flag"], time_varying_unknown_reals=["sales"], target_normalizer=GroupNormalizer(groups=["store", "sku"], transformation="softplus"), ) 

טעות נפוצה: pytorch-forecasting ברירת המחדל (training = TimeSeriesDataSet( data, time_idx="time_idx", target="sales", group_ids=["store", "sku"], min_encoder_length=max_encoder_length // 2, max_encoder_length=max_encoder_length, # 120 дней min_prediction_length=1, max_prediction_length=max_prediction_length, # 28 дней static_categoricals=["store_type", "category"], time_varying_known_reals=["price", "promo_flag"], time_varying_unknown_reals=["sales"], target_normalizer=GroupNormalizer(groups=["store", "sku"], transformation="softplus"), ) ) שובר תחזיות לסדרות עם ערכי אפס (ללא מכירות בסופי שבוע). target_normalizer עם StandardScaler הוא הבחירה הנכונה לנתוני ספירה.

מקרה בוחן: חיזוי ביקוש קמעונאי

רשת של 120 חנויות, 8,000 SKU, אופק חיזוי של 28 ימים. המערכת המקורית: SARIMA לכל סדרה, MAPE של 18.4%, מחזור אימון מחדש – 6 שעות. החלפנו אותה ב-TFT על PyTorch + pytorch-forecasting: מודל יחיד לכל הסדרות, MAPE של 11.2%, אימון מחדש – 40 דקות על A10G. חשיבות מאפיינים באמצעות בחירת משתנים גילתה ש-GroupNormalizer משפיע יותר מתאריך החג עצמו. חיסכון שנתי על אינפרנס בלבד עלה על $50,000.

תצורה שלב אחר שלב

  1. איסוף והכנת נתונים. טיפול בערכים חסרים (סמן NaN, אינטרפולציה רק לכשלים טכניים), אגרגציה לתדירות הנדרשת, הנדסת משתנים מסבירים (חגים, מבצעים, מחירים).
  2. יצירת transformation="softplus". הגדר group_ids (חנות + SKU), אינדקס זמן, אופק חיזוי. בחר TimeSeriesDataSet בהתאם להתפלגות היעד.
  3. אימון קו בסיס. Prophet או LightGBM קודם – כדי להבין את המורכבות.
  4. אימון TFT. השתמש ב-target_normalizer עם TemporalFusionTransformer, כוונן קצב למידה וגדלי שכבות נסתרות.
  5. ולידציה ופרשנות. בדיקת walk-forward, ניתוח בחירת משתנים, בניית מפות חום של קשב.

כיצד להעריך נכון את איכות התחזית?

RMSE לבדו מטעה – הוא מעניש יתר על המידה ערכים גדולים. הסט הסטנדרטי שלנו:

  • MAPE – פרשני, לא יציב קרוב לאפס.
  • sMAPE – סימטרי, מונע חלוקה במספרים קטנים.
  • MASE (Mean Absolute Scaled Error) – מנורמל יחסית לתחזית עונתית נאיבית, אידיאלי להשוואת סדרות בקני מידה שונים.
  • Pinball loss – לחיזוי הסתברותי, ניהול מלאי.
מדד מתי להשתמש חיסרון
MAPE דיווח עסקי, סדרות ללא אפסים לא יציב לערכים קטנים
sMAPE השוואת מודלים פרשנות א-סימטרית
MASE סדרות מרובות קני מידה, benchmarks דורש קו בסיס עונתי נאיבי
Pinball loss מודלים הסתברותיים ערכים מרובים ל-quantiles שונים

אנו מבטיחים כרטיס מודל עם מדדים אלה על ערכת הוולידציה ותוצאות walk-forward על לפחות 6 חודשי היסטוריה.

אילו תוצרים אתה מקבל?

  • תיעוד הארכיטקטורה שנבחרה והרציונל להיפרפרמטרים.
  • צינור אימון ואינפרנס ניתן לשחזור (Docker + CI/CD + Airflow/Prefect).
  • קוד מחויב עם בדיקות יחידה לרכיבים מרכזיים.
  • הכשרת צוות: אימון מחדש, פרשנות פלטים, פריסת גרסאות חדשות.
  • 3 חודשי תמיכה לאחר מסירה (ייעוץ, תיקוני באגים, כוונון עדין).

המודל נפרס דרך FastAPI או Triton Inference Server. אימון מחדש מתוזמן (לדוגמה, שבועי) דרך Airflow עם ולידציית drift וגלגול אוטומטי לאחור אם המדדים מתדרדרים.

תהליך ולוח זמנים

אנו מתחילים ב-EDA: ויזואליזציה, מבחן ADF, פירוק STL, ניתוח ערכים חסרים וחריגים. זה לוקח 2–3 ימים אבל לעיתים קרובות חושף בעיות נתונים מערכתיות שחוסמות חיזוי. לאחר מכן אנו בונים קו בסיס (נאיבי עונתי, Prophet), מהנדסים מאפיינים ל-LightGBM, ובוחרים ארכיטקטורה נוירונית אם יש צורך. ולידציית walk-forward עם אופק ריאלי. פריסה דרך API עם אימון מחדש אוטומטי המתוזמן דרך Airflow או Prefect.

לוח זמנים: MVP חיזוי על סוג נתונים אחד – 3–6 שבועות. מערכת חיזוי היררכית עם אוטומציה – 2–5 חודשים. העלות מחושבת באופן פרטני לפי נפח נתונים, מספר סדרות ודיוק נדרש.

הצוות שלנו מורכב ממהנדסי ML מוסמכים (AWS ML Specialty, GCP Professional ML Engineer) עם 5+ שנים בשוק ויותר מ-50 פרויקטי חיזוי שהושלמו. צור קשר לניתוח חינמי של הנתונים שלך – נעריך את המשימה ונספק המלצות ראשוניות תוך 1–2 ימים. בקש ייעוץ כדי להבטיח שהתחזיות שלך עובדות בייצור, לא רק במחברת.