במדריך הזה תלמדו איך ליצור תחזית חד-משתנית על סדרת זמנים אחת או יותר באמצעות הפונקציה AI.FORECAST עם המודל החד-משתני TimesFM שמוטמע ב-BigQuery.
במדריך הזה נעשה שימוש בנתונים מהטבלה הציבורית bigquery-public-data.san_francisco_bikeshare.bikeshare_trips.
מטרות
- אפשר לבצע תחזית חד-משתנית ולהציג את התוצאות של סדרת זמן אחת.
- מבצע חיזוי חד-משתני ומציג את התוצאות בכמה סדרות זמן.
עלויות
במדריך הזה נעשה שימוש ברכיבים של Cloud de Confiance by S3NSשהשימוש בהם כרוך בתשלום, כולל הרכיבים הבאים:
- BigQuery
- BigQuery ML
מידע נוסף זמין במאמרים תמחור ב-BigQuery ותמחור ב-BigQuery ML.
לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
-
אם BigQuery API לא מופעל, מפעילים אותו.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםבפרויקטים חדשים, BigQuery API מופעל באופן אוטומטי.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המשימות במדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
יוצרים את מערך הנתונים:
עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) -
יוצרים את המודל:
- עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) - BigQuery Job User (
roles/bigquery.jobUser)
- עריכה של נתוני BigQuery (
-
מריצים הסקה:
- עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) - BigQuery Job User (
roles/bigquery.jobUser)
- עריכה של נתוני BigQuery (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לביצוע המשימות במדריך הזה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לבצע את המשימות במדריך הזה, צריך את ההרשאות הבאות:
-
יוצרים את מערך הנתונים:
bigquery.datasets.create -
יוצרים את המודל:
-
bigquery.jobs.create -
bigquery.models.create -
bigquery.models.getData -
bigquery.models.updateData
-
-
מריצים הסקה:
-
bigquery.models.getData -
bigquery.jobs.create
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
במאמר מבוא ל-IAM יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.חיזוי של סדרת זמנים של נסיעות במיזם לשיתוף אופניים
אפשר לחזות ערכים עתידיים של סדרות עיתיות באמצעות הפונקציה AI.FORECAST.
השאילתה הבאה חוזה את מספר הנסיעות של מנויים בהשכרת אופניים בכל שעה בחודש הבא (כ-720 שעות), על סמך נתונים היסטוריים מארבעת החודשים הקודמים. הארגומנט confidence_level מציין שהשאילתה יוצרת רווח חיזוי ברמת סמך של 95%.
כדי ליצור תחזית של נתונים באמצעות מודל TimesFM:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR) ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips');
התוצאות אמורות להיראות כך:
+-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | forecast_timestamp | forecast_value | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 00:00:00 UTC | 26.3045959... | 0.95 | 21.7088378... | 30.9003540... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 01:00:00 UTC | 34.0890502... | 0.95 | 2.47682913... | 65.7012714... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | 2018-05-01 02:00:00 UTC | 24.2154693... | 0.95 | 2.87621605... | 45.5547226... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | | +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
השוואה בין הנתונים החזויים לבין נתוני הקלט
כדי לראות את ההשוואה בין הנתונים, אפשר להציג בתרשים את הפלט של הפונקציה AI.FORECAST לצד קבוצת משנה של נתוני הקלט של הפונקציה.
כדי ליצור תרשים של הפלט של הפונקציה:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR) ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips', output_historical_time_series => true);
אחרי שהשאילתה מסיימת לפעול, לוחצים על הכרטיסייה Visualization (הדמיה) בחלונית Query results (תוצאות השאילתה). בקטע סוג ההמחשה, בוחרים באפשרות קו. בקטע מאפיין, בוחרים באפשרות
time_series_timestamp. בקטע Measures (מדדים), בוחרים באפשרויותtime_series_data,prediction_interval_lower_boundו-prediction_interval_upper_bound. התרשים שיתקבל ייראה כך:
אפשר לראות שנתוני הקלט ונתוני התחזית מראים דפוסי שימוש דומים בשירות השכרת האופניים. אפשר גם לראות שהגבול התחתון והעליון של מרווח החיזוי גדלים ככל שנקודות הזמן החזויות מתרחקות יותר לעתיד.
חיזוי של כמה סדרות עתיות של נסיעות באופניים שיתופיים
השאילתה הבאה חוזה את מספר הנסיעות באופניים שיתופיות לפי סוג מנוי ולפי שעה בחודש הבא (כ-720 שעות), על סמך נתונים היסטוריים מארבעת החודשים הקודמים. הארגומנט confidence_level מציין שהשאילתה יוצרת רווח חיזוי ברמת סמך של 95%.
כדי ליצור תחזית של נתונים באמצעות מודל TimesFM:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run:
SELECT * FROM AI.FORECAST( ( SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, subscriber_type, COUNT(*) as num_trips FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips` WHERE start_date >= TIMESTAMP('2018-01-01') GROUP BY TIMESTAMP_TRUNC(start_date, HOUR), subscriber_type ), horizon => 720, confidence_level => 0.95, timestamp_col => 'trip_hour', data_col => 'num_trips', id_cols => ['subscriber_type']);
התוצאות אמורות להיראות כך:
+---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | subscriber_type | forecast_timestamp | forecast_value | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 00:00:00 UTC | 26.3045959... | 0.95 | 21.7088378... | 30.9003540... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 01:00:00 UTC | 34.0890502... | 0.95 | 2.47682913... | 65.7012714... | | +---------------------+-------------------+------------------+-------------------------+---------------------------------+---------------------------------+--------------------+ | Subscriber | 2018-05-01 02:00:00 UTC | 24.2154693... | 0.95 | 2.87621605... | 45.5547226... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+ | ... | ... | ... | ... | ... | ... | | +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת פרויקט
- במסוף Cloud de Confiance , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
- סקירה כללית על BigQuery ML זמינה במאמר מבוא ל-AI ול-ML ב-BigQuery.
- איך יוצרים תחזית של סדרת זמנים יחידה באמצעות מודל TimesFM מרובה משתנים
- איך יוצרים תחזית של כמה סדרות זמנים באמצעות מודל TimesFM מרובה משתנים