במדריך הזה תלמדו איך להשתמש בARIMA_PLUS מודל חד-משתני של סדרת זמנים כדי לחזות את הערך העתידי של עמודה מסוימת על סמך הערכים ההיסטוריים של העמודה הזו.
במדריך הזה נחזה סדרת זמן אחת. הערכים החזויים מחושבים פעם אחת לכל נקודת זמן בנתוני הקלט.
במדריך הזה נעשה שימוש בנתונים מטבלת הדוגמה bigquery-public-data.google_analytics_sample.ga_sessions הציבורית. הטבלה הזו מכילה נתונים מוצפנים של מסחר אלקטרוני מ-Google Merchandise Store.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:
- יצירת מודל של סדרת זמנים כדי לחזות את התנועה באתר באמצעות הצהרת
CREATE MODEL. - הערכת המידע של ממוצע נע משולב אוטומטי רגרסיבי (ARIMA) במודל באמצעות הפונקציה
ML.ARIMA_EVALUATE. - בדיקת מקדמי המודל באמצעות הפונקציה
ML.ARIMA_COEFFICIENTS. - אחזור מידע על התנועה באתר שחזתה המודל באמצעות הפונקציה
ML.FORECAST. - אחזור רכיבים של סדרת הזמן, כמו עונתיות ומגמה, באמצעות הפונקציה
ML.EXPLAIN_FORECAST. אפשר לבדוק את הרכיבים האלה של סדרות הזמן כדי להסביר את הערכים החזויים.
עלויות
במדריך הזה נעשה שימוש ברכיבים של Google Cloudשהשימוש בהם כרוך בתשלום, כולל הרכיבים הבאים:
- BigQuery
- BigQuery ML
מידע נוסף על העלויות ב-BigQuery זמין בדף תמחור ב-BigQuery.
מידע נוסף על העלויות של BigQuery ML זמין במאמר תמחור ב-BigQuery ML.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- BigQuery מופעל באופן אוטומטי בפרויקטים חדשים.
כדי להפעיל את BigQuery בפרויקט קיים, עוברים אל
אם BigQuery API לא מופעל, מפעילים אותו.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
ההרשאות הנדרשות
כדי ליצור את מערך הנתונים, צריך את הרשאת
bigquery.datasets.createב-IAM.כדי ליצור את המודל, צריך את ההרשאות הבאות:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
כדי להריץ הסקה, צריך את ההרשאות הבאות:
bigquery.models.getDatabigquery.jobs.create
במאמר מבוא ל-IAM יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
יצירת מערך נתונים
כדי ליצור מערך נתונים ב-BigQuery, בוחרים באחת מהאפשרויות הבאות:המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בסייר, מרחיבים את הפרויקט ואז לוחצים על מערכי נתונים.
בדף Datasets (מערכי נתונים), לוחצים על Create dataset (יצירת מערך נתונים).
בחלונית Create dataset:
בשדה Dataset ID (מזהה קבוצת נתונים), מזינים
bqml_tutorial.בקטע Data location, בוחרים באפשרות US.
משאירים את שאר הגדרות ברירת המחדל כמו שהן.
לוחצים על יצירת מערך נתונים.
BQ
כדי ליצור מערך נתונים חדש, משתמשים בפקודה bq mk --dataset.
יוצרים מערך נתונים בשם
bqml_tutorialעם מיקום הנתונים שמוגדר ל-US:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
בודקים שמערך הנתונים נוצר:
bq ls
API
מפעילים את השיטה datasets.insert עם משאב מוגדר של מערך נתונים:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
המחשת נתוני הקלט
לפני שיוצרים את המודל, אפשר להציג את נתוני סדרות הזמן של הקלט כדי לקבל מושג לגבי ההתפלגות. אפשר לעשות את זה באמצעות Data Studio.
כדי להציג את נתוני סדרת הזמנים:
SQL
בשילתת GoogleSQL הבאה, ההצהרה SELECT מנתחת את העמודה date מטבלת הקלט לסוג TIMESTAMP, משנה את השם שלה ל-parsed_date ומשתמשת בפסוקית SUM(...) ובפסוקית GROUP BY date כדי ליצור ערך יומי totals.visits.
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על 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;
כשהשאילתה מסתיימת, לוחצים על Open in (פתיחה ב) > Data Studio. Data Studio ייפתח בכרטיסייה חדשה. מבצעים את השלבים הבאים בכרטיסייה החדשה.
ב-Data Studio, לוחצים על הוספה > תרשים של סדרת זמנים.
בחלונית תרשים, בוחרים בכרטיסייה הגדרה.
בקטע Metric, מוסיפים את השדה total_visits ומסירים את מדד ברירת המחדל Record Count. התרשים שיתקבל ייראה כך:
מבדיקת התרשים אפשר לראות שלסדרת הזמנים של נתוני הקלט יש דפוס עונתי שבועי.
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
התוצאה אמורה להיראות כך:
יצירת מודל של סדרת זמנים
יוצרים מודל של סדרת זמנים כדי לחזות את סך הביקורים באתר כפי שמיוצג בעמודה 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, כך שמידע על נתוני סדרת הזמן יוחזר כשמעריכים את המודל בשלב הבא.
כדי ליצור את המודל:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על 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 לסביבת פיתוח מקומית.
הערכה של המודלים המועמדים
SQL
כדי להעריך את המודלים של סדרות הזמן, משתמשים בפונקציה ML.ARIMA_EVALUATE. הפונקציה ML.ARIMA_EVALUATE מציגה את מדדי ההערכה של כל המודלים המועמדים שהוערכו במהלך תהליך האופטימיזציה האוטומטית של היפרפרמטרים.
כדי להעריך את המודל, פועלים לפי השלבים הבאים:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:
SELECT * FROM ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.ga_arima_model`);
התוצאות אמורות להיראות כך:
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
עמודות הפלט 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.
כדי לאחזר את המקדמים של המודל:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על 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 לסביבת פיתוח מקומית.
בעמודת הפלט 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%.
כדי לחזות נתונים באמצעות המודל:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:
SELECT * FROM ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`, STRUCT(30 AS horizon, 0.8 AS confidence_level));
התוצאות אמורות להיראות כך:
BigQuery DataFrames
כדי לחזות ערכים עתידיים של סדרות זמן, משתמשים בפונקציה predict.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
שורות הפלט מסודרות בסדר כרונולוגי לפי ערך העמודה 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%.
כדי להסביר את התוצאות של המודל:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על 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 לסביבת פיתוח מקומית.
כדי להציג את התוצאות בתצוגה חזותית, אפשר להשתמש ב-Data Studio כמו שמתואר בקטע הצגת נתוני הקלט בתצוגה חזותית כדי ליצור תרשים, באמצעות העמודות הבאות כמדדים:
time_series_dataprediction_interval_lower_boundprediction_interval_upper_boundtrendseasonal_period_weeklystep_changes
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
- אתם יכולים למחוק את הפרויקט שיצרתם.
- אפשר גם להשאיר את הפרויקט ולמחוק את קבוצת הנתונים.
מחיקת מערך הנתונים
מחיקה של פרויקט מסירה את כל מערכי הנתונים ואת כל הטבלאות בפרויקט. אם אתם מעדיפים להשתמש מחדש בפרויקט, אתם יכולים למחוק את מערך הנתונים שיצרתם במדריך הזה:
אם צריך, פותחים את הדף BigQuery במסוףGoogle Cloud .
בחלונית הניווט, לוחצים על מערך הנתונים bqml_tutorial שיצרתם.
לוחצים על מחיקת מערך נתונים בצד שמאל של החלון. הפעולה הזו מוחקת את מערך הנתונים, את הטבלה ואת כל הנתונים.
בתיבת הדו-שיח מחיקת מערך נתונים, מקלידים את השם של מערך הנתונים (
bqml_tutorial) כדי לאשר את פקודת המחיקה, ואז לוחצים על מחיקה.
מחיקת פרויקט
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
- איך יוצרים תחזית של סדרת זמנים אחת באמצעות מודל רב-משתני
- איך יוצרים תחזית של כמה סדרות זמנים באמצעות מודל חד-משתני
- איך משתמשים במודל חד-משתני כדי לחזות כמה סדרות זמן בכמה שורות
- איך יוצרים תחזית היררכית של כמה סדרות זמן באמצעות מודל חד-משתני
- סקירה כללית על BigQuery ML זמינה במאמר מבוא ל-AI ול-ML ב-BigQuery.