קבלת תובנות לגבי נתונים ממודל ניתוח תרומות באמצעות מדד שניתן לסיכום

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

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

לפני שמתחילים את המדריך הזה, כדאי להכיר את תרחיש השימוש של ניתוח התרומה.

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

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

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

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

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

עלויות

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

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון התמחור.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

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

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project (בחירת פרויקט): כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שהוקצה לכם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

    כניסה לדף לבחירת הפרויקט

  2. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  3. מפעילים את BigQuery API.

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

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

    להפעלת ה-API

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

כדי ליצור מערך נתונים ב-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"
  }
}

יצירת טבלה של נתוני קלט

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

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

    כניסה ל-BigQuery

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

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_sum_data AS (
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        FALSE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT(YEAR from date) = 2020
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
      UNION ALL
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        TRUE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT (YEAR FROM date) = 2021
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
    );

יצירת המודל

כדי ליצור מודל ניתוח תרומות:

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

    כניסה ל-BigQuery

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

    CREATE OR REPLACE MODEL bqml_tutorial.iowa_liquor_sales_sum_model
      OPTIONS(
        model_type='CONTRIBUTION_ANALYSIS',
        contribution_metric = 'sum(total_sales)',
        dimension_id_cols = ['store_name', 'city', 'vendor_name', 'category_name',
          'item_description'],
        is_test_col = 'is_test',
        min_apriori_support=0.05
      ) AS
    SELECT * FROM bqml_tutorial.iowa_liquor_sales_sum_data;

השלמת השאילתה נמשכת כ-60 שניות, ולאחר מכן המודל iowa_liquor_sales_sum_model מופיע במערך הנתונים bqml_tutorial. מכיוון שהשאילתה משתמשת בהצהרת CREATE MODEL כדי ליצור מודל, אין תוצאות לשאילתה.

קבלת תובנות מהמודל

אפשר לקבל תובנות שנוצרו על ידי מודל ניתוח התרומה באמצעות הפונקציה ML.GET_INSIGHTS.

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

    כניסה ל-BigQuery

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

    SELECT
      contributors,
      metric_test,
      metric_control,
      difference,
      relative_difference,
      unexpected_difference,
      relative_unexpected_difference,
      apriori_support,
      contribution
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.iowa_liquor_sales_sum_model`);

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

תורמים metric_test metric_control הבדל relative_difference unexpected_difference relative_unexpected_difference apriori_support תרומה
all 428068179 396472956 31595222 0.079 31595222 0.079 1.0 31595222
vendor_name=SAZERAC COMPANY INC 52327307 38864734 13462573 0.346 11491923 0.281 0.122 13462573
city=DES MOINES 49521322 41746773 7774549 0.186 4971158 0.111 0.115 7774549
vendor_name=DIAGEO AMERICAS 84681073 77259259 7421814 0.096 1571126 0.018 0.197 7421814
category_name=100% AGAVE TEQUILA 23915100 17252174 6662926 0.386 5528662 0.3 0.055 6662926

הפלט ממוין אוטומטית לפי התרומה, או ABS(difference), בסדר יורד. בשורה all, בעמודה difference מוצגת עלייה של 31,595,222$‎ בסך המכירות בין 2020 ל-2021, עלייה של 7.9% כפי שמצוין בעמודה relative_difference. בשורה השנייה, עם vendor_name=SAZERAC COMPANY INC, היה unexpected_difference של 11,491,923$, כלומר הפלח הזה של הנתונים גדל ב-28% יותר משיעור הצמיחה של הנתונים בכללותם, כפי שניתן לראות בעמודה relative_unexpected_difference. מידע נוסף זמין במאמר בנושא עמודות פלט של מדדים שניתן לסכם.

הסרת המשאבים

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

    כניסה לדף Manage resources

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