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

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

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

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

מטרות

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

עלויות

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

  • BigQuery
  • BigQuery ML

למידע נוסף על העלויות של BigQuery, קראו את הדף תמחור ב-BigQuery.

כאן תוכלו לקרוא מידע נוסף על העלויות של BigQuery ML.

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

  1. 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

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

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

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

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

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

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

    אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.

  3. ב-Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.

  4. בדף Datasets, לוחצים על Create dataset.

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

    • בשדה Dataset ID, מזינים bqml_tutorial.

    • בקטע Data location (מיקום הנתונים), בוחרים באפשרות US (ארה"ב).

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

  6. לוחצים על Create dataset.

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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. ב-Looker Studio, לוחצים על Insert > Time series chart.

    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 מכוונן באופן אוטומטי את הפרמטרים של היפר-מודל במודל. האלגוריתם מתאים עשרות מודלים מועמדים ובוחר את המודל הטוב ביותר, שהוא המודל עם קריטריון המידע של Akaike‏ (AIC) הנמוך ביותר. ערך ברירת המחדל של האפשרות data_frequency בהצהרות CREATE MODEL הוא AUTO_FREQUENCY, כך שתהליך האימון מסיק באופן אוטומטי את תדירות הנתונים של סדרת הזמן של הקלט. האפשרות decompose_time_series של ההצהרה CREATE MODEL מוגדרת כברירת מחדל ל-TRUE, כך שמידע על נתוני סדרת הזמנים מוחזר כשמעריכים את המודל בשלב הבא.

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

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-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. בתיבת הדו-שיח Delete dataset, מאשרים את פקודת המחיקה על ידי הקלדת שם מערך הנתונים (bqml_tutorial) ולוחצים על Delete.

מחיקת הפרויקט

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

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

    כניסה לדף Manage resources

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

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