חיזוי של סדרת זמנים יחידה באמצעות מודל חד-משתני מסוג ARIMA_PLUS

במדריך הזה תלמדו איך להשתמש בARIMA_PLUS מודל חד-משתני של סדרת זמנים כדי לחזות את הערך העתידי של עמודה מסוימת על סמך הערכים ההיסטוריים של העמודה הזו.

במדריך הזה נחזה סדרת זמן אחת. הערכים החזויים מחושבים פעם אחת לכל נקודת זמן בנתוני הקלט.

במדריך הזה נעשה שימוש בנתונים מטבלת הדוגמה bigquery-public-data.google_analytics_sample.ga_sessions הציבורית. הטבלה הזו מכילה נתונים מוצפנים של מסחר אלקטרוני מ-Google Merchandise Store.

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

עלויות

במדריך הזה נעשה שימוש ברכיבים של Google Cloudשהשימוש בהם כרוך בתשלום, כולל הרכיבים הבאים:

  • BigQuery
  • BigQuery ML

מידע נוסף על העלויות ב-BigQuery זמין בדף תמחור ב-BigQuery.

מידע נוסף על העלויות של BigQuery ML זמין במאמר תמחור ב-BigQuery ML.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. ‫BigQuery מופעל באופן אוטומטי בפרויקטים חדשים. כדי להפעיל את BigQuery בפרויקט קיים, עוברים אל

    אם BigQuery API לא מופעל, מפעילים אותו.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

ההרשאות הנדרשות

  • כדי ליצור את מערך הנתונים, צריך את הרשאת bigquery.datasets.create ב-IAM.

  • כדי ליצור את המודל, צריך את ההרשאות הבאות:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • כדי להריץ הסקה, צריך את ההרשאות הבאות:

    • bigquery.models.getData
    • bigquery.jobs.create

במאמר מבוא ל-IAM יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.

יצירת מערך נתונים

כדי ליצור מערך נתונים ב-BigQuery, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בסייר, מרחיבים את הפרויקט ואז לוחצים על מערכי נתונים.

  4. בדף Datasets (מערכי נתונים), לוחצים על Create dataset (יצירת מערך נתונים).

  5. בחלונית Create dataset:

    • בשדה Dataset ID (מזהה קבוצת נתונים), מזינים bqml_tutorial.

    • בקטע Data location, בוחרים באפשרות US.

    משאירים את שאר הגדרות ברירת המחדל כמו שהן.

  6. לוחצים על יצירת מערך נתונים.

BQ

כדי ליצור מערך נתונים חדש, משתמשים בפקודה bq mk --dataset.

  1. יוצרים מערך נתונים בשם bqml_tutorial עם מיקום הנתונים שמוגדר ל-US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. בודקים שמערך הנתונים נוצר:

    bq ls

API

מפעילים את השיטה datasets.insert עם משאב מוגדר של מערך נתונים:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import google.cloud.bigquery

bqclient = google.cloud.bigquery.Client()
bqclient.create_dataset("bqml_tutorial", exists_ok=True)

המחשת נתוני הקלט

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

כדי להציג את נתוני סדרת הזמנים:

SQL

בשילתת GoogleSQL הבאה, ההצהרה SELECT מנתחת את העמודה date מטבלת הקלט לסוג TIMESTAMP, משנה את השם שלה ל-parsed_date ומשתמשת בפסוקית SUM(...) ובפסוקית GROUP BY date כדי ליצור ערך יומי totals.visits.

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    SELECT
    PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
    SUM(totals.visits) AS total_visits
    FROM
    `bigquery-public-data.google_analytics_sample.ga_sessions_*`
    GROUP BY date;
    1. כשהשאילתה מסתיימת, לוחצים על Open in (פתיחה ב) > Data Studio. ‫Data Studio ייפתח בכרטיסייה חדשה. מבצעים את השלבים הבאים בכרטיסייה החדשה.

    2. ב-Data Studio, לוחצים על הוספה > תרשים של סדרת זמנים.

    3. בחלונית תרשים, בוחרים בכרטיסייה הגדרה.

    4. בקטע Metric, מוסיפים את השדה total_visits ומסירים את מדד ברירת המחדל Record Count. התרשים שיתקבל ייראה כך:

      Result_visualization

      מבדיקת התרשים אפשר לראות שלסדרת הזמנים של נתוני הקלט יש דפוס עונתי שבועי.

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import bigframes.pandas as bpd

# Start by loading the historical data from BigQuerythat you want to analyze and forecast.
# This clause indicates that you are querying the ga_sessions_* tables in the google_analytics_sample dataset.
# Read and visualize the time series you want to forecast.
df = bpd.read_gbq("bigquery-public-data.google_analytics_sample.ga_sessions_*")
parsed_date = bpd.to_datetime(df.date, format="%Y%m%d", utc=True)
parsed_date.name = "parsed_date"
visits = df["totals"].struct.field("visits")
visits.name = "total_visits"
total_visits = visits.groupby(parsed_date).sum()

# Expected output: total_visits.head()
# parsed_date
# 2016-08-01 00:00:00+00:00    1711
# 2016-08-02 00:00:00+00:00    2140
# 2016-08-03 00:00:00+00:00    2890
# 2016-08-04 00:00:00+00:00    3161
# 2016-08-05 00:00:00+00:00    2702
# Name: total_visits, dtype: Int64

total_visits.plot.line()

התוצאה אמורה להיראות כך: Result_visualization

יצירת מודל של סדרת זמנים

יוצרים מודל של סדרת זמנים כדי לחזות את סך הביקורים באתר כפי שמיוצג בעמודה totals.visits, ומאמנים אותו על הנתונים של Google Analytics 360.

SQL

בשאילתה הבאה, הפסקה OPTIONS(model_type='ARIMA_PLUS', time_series_timestamp_col='date', ...) מציינת שאתם יוצרים מודל של סדרת זמנים שמבוסס על ARIMA. אפשרות auto_arima של הצהרת CREATE MODEL מוגדרת כברירת מחדל ל-TRUE, ולכן האלגוריתם auto.ARIMA מכוונן אוטומטית את ההיפרפרמטרים במודל. האלגוריתם מתאים עשרות מודלים פוטנציאליים ובוחר את המודל הטוב ביותר, שהוא המודל עם קריטריון המידע של אקייק (AIC) הנמוך ביותר. data_frequency האפשרות של הצהרות CREATE MODEL מוגדרת כברירת מחדל לערך AUTO_FREQUENCY, כך שתהליך האימון מסיק אוטומטית את תדירות הנתונים של סדרת הזמן של הקלט. אפשרות decompose_time_series של הצהרת CREATE MODEL מוגדרת כברירת מחדל ל-TRUE, כך שמידע על נתוני סדרת הזמן יוחזר כשמעריכים את המודל בשלב הבא.

כדי ליצור את המודל:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    CREATE OR REPLACE MODEL `bqml_tutorial.ga_arima_model`
    OPTIONS
    (model_type = 'ARIMA_PLUS',
     time_series_timestamp_col = 'parsed_date',
     time_series_data_col = 'total_visits',
     auto_arima = TRUE,
     data_frequency = 'AUTO_FREQUENCY',
     decompose_time_series = TRUE
    ) AS
    SELECT
    PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
    SUM(totals.visits) AS total_visits
    FROM
    `bigquery-public-data.google_analytics_sample.ga_sessions_*`
    GROUP BY date;

    השאילתה נמשכת כ-4 שניות, ולאחר מכן אפשר לגשת למודל ga_arima_model. מכיוון שהשאילתה משתמשת בהצהרה CREATE MODEL כדי ליצור מודל, לא מוצגות תוצאות של השאילתה.

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

from bigframes.ml import forecasting
import bigframes.pandas as bpd

# Create a time series model to forecast total site visits:
# The auto_arima option defaults to True, so the auto.ARIMA algorithm automatically
# tunes the hyperparameters in the model.
# The data_frequency option defaults to 'auto_frequency so the training
# process automatically infers the data frequency of the input time series.
# The decompose_time_series option defaults to True, so that information about
# the time series data is returned when you evaluate the model in the next step.
model = forecasting.ARIMAPlus()
model.auto_arima = True
model.data_frequency = "auto_frequency"
model.decompose_time_series = True

# Use the data loaded in the previous step to fit the model
training_data = total_visits.to_frame().reset_index(drop=False)

X = training_data[["parsed_date"]]
y = training_data[["total_visits"]]

model.fit(X, y)

הערכה של המודלים המועמדים

SQL

כדי להעריך את המודלים של סדרות הזמן, משתמשים בפונקציה ML.ARIMA_EVALUATE. הפונקציה ML.ARIMA_EVALUATE מציגה את מדדי ההערכה של כל המודלים המועמדים שהוערכו במהלך תהליך האופטימיזציה האוטומטית של היפרפרמטרים.

כדי להעריך את המודל, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    SELECT
    *
    FROM
    ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.ga_arima_model`);

    התוצאות אמורות להיראות כך:

    הפלט של ML.ARIMA_EVALUATE.

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

# Evaluate the time series models by using the summary() function. The summary()
# function shows you the evaluation metrics of all the candidate models evaluated
# during the process of automatic hyperparameter tuning.
summary = model.summary(
    show_all_candidate_models=True,
)
print(summary.peek())

# Expected output:
# row   non_seasonal_p	non_seasonal_d	non_seasonal_q	has_drift	log_likelihood	AIC	variance	seasonal_periods	has_holiday_effect	has_spikes_and_dips	has_step_changes	error_message
#  0	      0	              1	               3	      True	     -2464.255656	4938.511313	     42772.506055	        ['WEEKLY']	            False	        False	            True
#  1	      2	              1	               0	      False	     -2473.141651	4952.283303	     44942.416463	        ['WEEKLY']	            False	        False	            True
#  2	      1	              1	               0 	      False	     -2479.880885	4963.76177	     46642.953433	        ['WEEKLY']	            False	        False	            True
#  3	      0	              1	               1	      False	     -2470.632377	4945.264753	     44319.379307	        ['WEEKLY']	            False	        False	            True
#  4	      2	              1	               1	      True	     -2463.671247	4937.342493	     42633.299513	        ['WEEKLY']	            False	        False	            True

עמודות הפלט non_seasonal_p,‏ non_seasonal_d,‏ non_seasonal_q ו-has_drift מגדירות מודל ARIMA בצינור העיבוד לאימון. עמודות הפלט log_likelihood, AIC ו-variance רלוונטיות לתהליך ההתאמה של מודל ARIMA.

האלגוריתם auto.ARIMA משתמש במבחן KPSS כדי לקבוע את הערך הטוב ביותר ל-non_seasonal_d, שהוא 1 במקרה הזה. כאשר non_seasonal_d הוא 1, אלגוריתם auto.ARIMA מאמן 42 מודלים שונים של ARIMA במקביל. בדוגמה הזו, כל 42 המודלים הפוטנציאליים תקפים, ולכן הפלט מכיל 42 שורות, שורה אחת לכל מודל ARIMA פוטנציאלי. במקרים שבהם חלק מהמודלים לא תקפים, הם לא נכללים בפלט. המודלים האלה מוחזרים בסדר עולה לפי AIC. למודל בשורה הראשונה יש את ערך ה-AIC הנמוך ביותר, ולכן הוא נחשב למודל הטוב ביותר. המודל הכי טוב נשמר כמודל הסופי ומשמש כשמפעילים פונקציות כמו ML.FORECAST במודל

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

העמודות has_holiday_effect,‏ has_spikes_and_dips ו-has_step_changes מתמלאות רק כש-decompose_time_series=TRUE. העמודות האלה משקפות גם מידע על נתוני סדרות הזמן של הקלט, והן לא קשורות למודל ARIMA. הערכים בעמודות האלה זהים בכל שורות הפלט.

בעמודה error_message מוצגות שגיאות שהתרחשו במהלך תהליך ההתאמה auto.ARIMA. סיבה אפשרית לשגיאות היא שהעמודות non_seasonal_p, non_seasonal_d, non_seasonal_q ו-has_drift שנבחרו לא מאפשרות לייצב את סדרת הזמן. כדי לאחזר את הודעת השגיאה של כל המודלים המועמדים, מגדירים את האפשרות show_all_candidate_models לערך TRUE כשיוצרים את המודל.

מידע נוסף על עמודות הפלט זמין במאמר בנושא הפונקציה ML.ARIMA_EVALUATE.

בדיקת המקדמים של המודל

SQL

בודקים את המקדמים של מודל סדרת הזמנים באמצעות הפונקציה ML.ARIMA_COEFFICIENTS.

כדי לאחזר את המקדמים של המודל:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    SELECT
    *
    FROM
    ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.ga_arima_model`);

בעמודת הפלט ar_coefficients מוצגים מקדמי המודל של החלק האוטו-רגרסיבי (AR) של מודל ARIMA. באופן דומה, בעמודת הפלט ma_coefficients מוצגים מקדמי המודל של החלק של הממוצע הנע (MA) במודל ARIMA. שתי העמודות האלה מכילות ערכי מערך, שהאורך שלהם שווה ל-non_seasonal_p ול-non_seasonal_q, בהתאמה. אפשר לראות בפלט של הפונקציה ML.ARIMA_EVALUATE שהמודל הכי טוב הוא בעל ערך non_seasonal_p של 2 וערך non_seasonal_q של 3. לכן, בפלט ML.ARIMA_COEFFICIENTS, הערך ar_coefficients הוא מערך עם 2 רכיבים והערך ma_coefficients הוא מערך עם 3 רכיבים. הערך intercept_or_drift הוא האיבר הקבוע במודל ARIMA.

מידע נוסף על עמודות הפלט זמין במאמר בנושא הפונקציה ML.ARIMA_COEFFICIENTS.

BigQuery DataFrames

בודקים את המקדמים של מודל סדרת הזמנים באמצעות הפונקציה coef_.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

coef = model.coef_
print(coef.peek())

# Expected output:
#       ar_coefficients   ma_coefficients   intercept_or_drift
#   0	 [0.40944762]	   [-0.81168198]	      0.0

בעמודת הפלט ar_coefficients מוצגים מקדמי המודל של החלק האוטו-רגרסיבי (AR) של מודל ARIMA. באופן דומה, בעמודת הפלט ma_coefficients מוצגים מקדמי המודל של החלק של הממוצע הנע (MA) במודל ARIMA. שתי העמודות האלה מכילות ערכי מערך, שהאורך שלהם שווה ל-non_seasonal_p ול-non_seasonal_q, בהתאמה.

שימוש במודל לחיזוי נתונים

SQL

אפשר לחזות ערכים עתידיים של סדרות עיתיות באמצעות הפונקציה ML.FORECAST.

בשאילתת GoogleSQL הבאה, פסוקית STRUCT(30 AS horizon, 0.8 AS confidence_level) מציינת שהשאילתה חוזה 30 נקודות זמן עתידיות, ומפיקה רווח חיזוי ברמת סמך של 80%.

כדי לחזות נתונים באמצעות המודל:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    SELECT
    *
    FROM
    ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`,
              STRUCT(30 AS horizon, 0.8 AS confidence_level));

    התוצאות אמורות להיראות כך:

    פלט של ML.FORECAST.

BigQuery DataFrames

כדי לחזות ערכים עתידיים של סדרות זמן, משתמשים בפונקציה predict.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

prediction = model.predict(horizon=30, confidence_level=0.8)

print(prediction.peek())
# Expected output:
#           forecast_timestamp	   forecast_value	standard_error	confidence_level	prediction_interval_lower_bound	    prediction_interval_upper_bound	    confidence_interval_lower_bound	    confidence_interval_upper_bound
# 11	2017-08-13 00:00:00+00:00	1845.439732	      328.060405	      0.8	                 1424.772257	                      2266.107208	                     1424.772257	                     2266.107208
# 29	2017-08-31 00:00:00+00:00	2615.993932	      431.286628	      0.8	                 2062.960849	                      3169.027015	                     2062.960849	                     3169.027015
# 7	    2017-08-09 00:00:00+00:00	2639.285993	      300.301186	      0.8	                 2254.213792	                      3024.358193	                     2254.213792	                     3024.358193
# 25	2017-08-27 00:00:00+00:00	1853.735689	      410.596551	      0.8	                 1327.233216	                      2380.238162	                     1327.233216	                     2380.238162
# 1	    2017-08-03 00:00:00+00:00	2621.33159	      241.093355	      0.8	                 2312.180802	                      2930.482379	                     2312.180802	                     2930.482379

שורות הפלט מסודרות בסדר כרונולוגי לפי ערך העמודה forecast_timestamp. בתחזית של סדרת זמן, מרווח החיזוי, שמיוצג על ידי ערכי העמודות prediction_interval_lower_bound ו-prediction_interval_upper_bound, חשוב לא פחות מערך העמודה forecast_value. הערך של forecast_value הוא נקודת האמצע של מרווח החיזוי. מרווח החיזוי תלוי בערכים של העמודות standard_error ו-confidence_level.

מידע נוסף על עמודות הפלט זמין במאמר בנושא הפונקציה ML.FORECAST.

הסבר על תוצאות התחזית

SQL

אפשר לקבל מדדים של יכולת הסבר בנוסף לנתוני התחזית באמצעות הפונקציה ML.EXPLAIN_FORECAST. הפונקציה ML.EXPLAIN_FORECAST חוזה ערכים עתידיים של סדרות זמן, וגם מחזירה את כל הרכיבים הנפרדים של סדרת הזמן.

בדומה לפונקציה ML.FORECAST, פסוקית STRUCT(30 AS horizon, 0.8 AS confidence_level) שמשמשת בפונקציה ML.EXPLAIN_FORECAST מציינת שהשאילתה חוזה 30 נקודות זמן עתידיות ומפיקה רווח בר-סמך עם רמת סמך של 80%.

כדי להסביר את התוצאות של המודל:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:

    SELECT
    *
    FROM
    ML.EXPLAIN_FORECAST(MODEL `bqml_tutorial.ga_arima_model`,
     STRUCT(30 AS horizon, 0.8 AS confidence_level));

    התוצאות אמורות להיראות כך:

    תשע העמודות הראשונות של הפלט עם נתונים חזויים והסברים על התחזית. עמודות הפלט העשירית עד השבע-עשרה של נתוני התחזית וההסברים לתחזית. שש העמודות האחרונות של נתוני התחזית וההסברים לתחזית.

    שורות הפלט מסודרות בסדר כרונולוגי לפי ערך העמודה time_series_timestamp

    מידע נוסף על עמודות הפלט זמין במאמר בנושא הפונקציה ML.EXPLAIN_FORECAST.

BigQuery DataFrames

אפשר לקבל מדדים של יכולת הסבר בנוסף לנתוני התחזית באמצעות הפונקציה predict_explain. הפונקציה predict_explain חוזה ערכים עתידיים של סדרת זמנים, וגם מחזירה את כל הרכיבים הנפרדים של סדרת הזמנים.

בדומה לפונקציה predict, סעיף horizon=30, confidence_level=0.8 שמשמש בפונקציה predict_explain מציין שהשאילתה חוזה 30 נקודות זמן עתידיות ומפיקה רווח חיזוי עם רמת סמך של 80%.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

ex_pred = model.predict_explain(horizon=30, confidence_level=0.8)

print(ex_pred.head(4))
# Expected output:
#       time_series_timestamp	  time_series_type	    time_series_data	time_series_adjusted_data	 standard_error	   confidence_level	   prediction_interval_lower_bound	   prediction_interval_upper_bound	  trend	   seasonal_period_yearly	  seasonal_period_quarterly	    seasonal_period_monthly	   seasonal_period_weekly	  seasonal_period_daily	    holiday_effect	   spikes_and_dips	   step_changes	   residual
# 0	  2016-08-01 00:00:00+00:00	      history	             1711.0	               505.716474	           206.939556	         <NA>	                    <NA>	                            <NA>	               0.0	           <NA>	                        <NA>	                     <NA>	                 169.611938	                  <NA>	                <NA>	            <NA>	       1205.283526	   336.104536
# 1	  2016-08-02 00:00:00+00:00	      history	             2140.0	               623.137701	           206.939556	         <NA>	                    <NA>	                            <NA>	            336.104428	       <NA>	                        <NA>	                     <NA>	                 287.033273	                  <NA>	                <NA>	            <NA>	       1205.283526	   311.578773
# 2	  2016-08-03 00:00:00+00:00	      history	             2890.0	               1008.655091	           206.939556	         <NA>	                    <NA>	                            <NA>	            563.514213	       <NA>	                        <NA>	                     <NA>	                 445.140878	                  <NA>	                <NA>	            <NA>	       1205.283526	   676.061383
# 3	  2016-08-04 00:00:00+00:00	      history	             3161.0	               1389.40959	           206.939556	         <NA>	                    <NA>	                            <NA>	            986.317236	       <NA>	                        <NA>	                     <NA>	                 403.092354	                  <NA>	                <NA>	            <NA>	       1205.283526	   566.306884
# 4	  2016-08-05 00:00:00+00:00	      history	             2702.0	               1394.395741	           206.939556	         <NA>	                    <NA>	                            <NA>	            1248.707386	       <NA>	                        <NA>	                     <NA>	                 145.688355	                  <NA>	                <NA>	            <NA>	       1205.283526	   102.320733
# 5	  2016-08-06 00:00:00+00:00	      history	             1663.0	               437.09243	           206.939556	         <NA>	                    <NA>	                            <NA>	            1188.59004	       <NA>	                        <NA>	                     <NA>	                 -751.49761	                  <NA>	                <NA>	            <NA>	       1205.283526	    20.624044

כדי להציג את התוצאות בתצוגה חזותית, אפשר להשתמש ב-Data Studio כמו שמתואר בקטע הצגת נתוני הקלט בתצוגה חזותית כדי ליצור תרשים, באמצעות העמודות הבאות כמדדים:

  • time_series_data
  • prediction_interval_lower_bound
  • prediction_interval_upper_bound
  • trend
  • seasonal_period_weekly
  • step_changes

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

  • אתם יכולים למחוק את הפרויקט שיצרתם.
  • אפשר גם להשאיר את הפרויקט ולמחוק את קבוצת הנתונים.

מחיקת מערך הנתונים

מחיקה של פרויקט מסירה את כל מערכי הנתונים ואת כל הטבלאות בפרויקט. אם אתם מעדיפים להשתמש מחדש בפרויקט, אתם יכולים למחוק את מערך הנתונים שיצרתם במדריך הזה:

  1. אם צריך, פותחים את הדף BigQuery במסוףGoogle Cloud .

    לדף BigQuery

  2. בחלונית הניווט, לוחצים על מערך הנתונים bqml_tutorial שיצרתם.

  3. לוחצים על מחיקת מערך נתונים בצד שמאל של החלון. הפעולה הזו מוחקת את מערך הנתונים, את הטבלה ואת כל הנתונים.

  4. בתיבת הדו-שיח מחיקת מערך נתונים, מקלידים את השם של מערך הנתונים (bqml_tutorial) כדי לאשר את פקודת המחיקה, ואז לוחצים על מחיקה.

מחיקת פרויקט

כדי למחוק את הפרויקט:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

המאמרים הבאים