במדריך הזה תלמדו איך להשתמש במודל סיווג של עצים משופרים כדי לחזות את טווח ההכנסה של אנשים על סמך נתונים דמוגרפיים. המודל מנבא אם ערך מסוים משתייך לאחת משתי קטגוריות. במקרה הזה, המודל מנבא אם ההכנסה השנתית של אדם מסוים גבוהה מ-50,000$ או נמוכה מ-50,000$.
במדריך הזה נעשה שימוש במערך הנתונים bigquery-public-data.ml_datasets.census_adult_income. קבוצת הנתונים הזו מכילה מידע דמוגרפי ומידע על הכנסות של תושבי ארה"ב משנת 2000 ומשנת 2010.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:
- יצירת מודל של עצים מחוזקים כדי לחזות את טווח ההכנסה של המשיבים למפקד האוכלוסין באמצעות הצהרת
CREATE MODEL. - הערכת המודל באמצעות הפונקציה
ML.EVALUATE. - קבלת תחזיות מהמודל באמצעות הפונקציה
ML.PREDICT.
עלויות
במדריך הזה נעשה שימוש ברכיבים של Cloud de Confiance by S3NSשחלים עליהם חיובים, כולל הרכיבים הבאים:
- BigQuery
- BigQuery ML
מידע נוסף על העלויות ב-BigQuery זמין בדף תמחור ב-BigQuery.
מידע נוסף על העלויות של BigQuery ML זמין במאמר תמחור ב-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 מופעל באופן אוטומטי בפרויקטים חדשים.
כדי להפעיל את BigQuery בפרויקט קיים, עוברים אל
מפעילים את BigQuery API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
ההרשאות הנדרשות
כדי ליצור את מערך הנתונים, אתם צריכים את ההרשאה
bigquery.datasets.createב-IAM.כדי ליצור את המודל, צריך את ההרשאות הבאות:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
כדי להריץ הסקה, אתם צריכים את ההרשאות הבאות:
bigquery.models.getDatabigquery.jobs.create
במאמר מבוא ל-IAM יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery לאחסון מודל ה-ML.המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על הצגת פעולות > יצירת מערך נתונים.
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID (מזהה מערך הנתונים), מזינים
bqml_tutorial.בקטע Location type, בוחרים באפשרות Multi-region ואז בוחרים באפשרות US.
משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על Create dataset (יצירת מערך נתונים).
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 לסביבת פיתוח מקומית.
הכנת נתונים לדוגמה
המודל שתיצרו במדריך הזה יחזה את קבוצת ההכנסה של המשיבים למפקד האוכלוסין, על סמך התכונות הבאות:
- גיל
- סוג העבודה שבוצעה
- מצב משפחתי
- רמת השכלה
- מקצוע
- שעות עבודה בשבוע
העמודה education לא נכללת בנתוני האימון, כי העמודות education ו-education_num מבטאות את רמת ההשכלה של המשיב בפורמטים שונים.
כדי להפריד את הנתונים לקבוצות של אימון, הערכה וחיזוי, יוצרים עמודה חדשה dataframe שנגזרת מהעמודה functional_weight.
80% מהנתונים משמשים לאימון המודל, ו-20% הנותרים משמשים להערכה ולחיזוי.
SQL
כדי להכין את נתוני הדוגמה, יוצרים תצוגה מפורטת שתכיל את נתוני האימון. התצוגה הזו משמשת את ההצהרה CREATE MODEL בהמשך המדריך הזה.
מריצים את השאילתה שמכינה את הנתונים לדוגמה:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה:
CREATE OR REPLACE VIEW `bqml_tutorial.input_data` AS SELECT age, workclass, marital_status, education_num, occupation, hours_per_week, income_bracket, CASE WHEN MOD(functional_weight, 10) < 8 THEN 'training' WHEN MOD(functional_weight, 10) = 8 THEN 'evaluation' WHEN MOD(functional_weight, 10) = 9 THEN 'prediction' END AS dataframe FROM `bigquery-public-data.ml_datasets.census_adult_income`;
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מחפשים את מערך הנתונים
bqml_tutorial.לוחצים על מערך הנתונים ואז על סקירה כללית > טבלאות.
לוחצים על התצוגה
input_dataכדי לפתוח את חלונית המידע. סכימת התצוגה מופיעה בכרטיסייה סכימה.
BigQuery DataFrames
יוצרים DataFrame בשם input_data. בהמשך המדריך הזה תשתמשו ב-input_data כדי לאמן את המודל, להעריך אותו ולבצע חיזויים.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
יצירת מודל של עצים משופרים
יוצרים מודל של עצים מחוזקים כדי לחזות את קבוצת ההכנסה של המשיבים למפקד האוכלוסין, ומאמנים אותו על נתוני מפקד האוכלוסין. השלמת השאילתה נמשכת כ-30 דקות.
SQL
כדי ליצור את המודל:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run (הרצה):
CREATE MODEL `bqml_tutorial.tree_model` OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER', BOOSTER_TYPE = 'GBTREE', NUM_PARALLEL_TREE = 1, MAX_ITERATIONS = 50, TREE_METHOD = 'HIST', EARLY_STOP = FALSE, SUBSAMPLE = 0.85, INPUT_LABEL_COLS = ['income_bracket']) AS SELECT * EXCEPT(dataframe) FROM `bqml_tutorial.input_data` WHERE dataframe = 'training';
אחרי שהשאילתה מסתיימת, אפשר לגשת למודל
tree_modelדרך חלונית הסייר. השאילתה משתמשת בהצהרתCREATE MODELכדי ליצור מודל, ולכן לא מוצגות תוצאות של השאילתה.
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
הערכת המודל
SQL
כדי להעריך את המודל, פועלים לפי השלבים הבאים:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run (הרצה):
SELECT * FROM ML.EVALUATE (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'evaluation' ) );
התוצאות אמורות להיראות כך:
+---------------------+---------------------+---------------------+-------------------+---------------------+---------------------+ | precision | recall | accuracy | f1_score | log_loss | roc_auc | +---------------------+---------------------+---------------------+-------------------+-------------------------------------------+ | 0.67192429022082023 | 0.57880434782608692 | 0.83942963422194672 | 0.621897810218978 | 0.34405456040833338 | 0.88733566433566435 | +---------------------+---------------------+ --------------------+-------------------+---------------------+---------------------+
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
מדדי ההערכה מצביעים על ביצועים טובים של המודל, במיוחד העובדה שהציון roc_auc גבוה מ-0.8.
מידע נוסף על מדדי ההערכה זמין במאמר בנושא פלט.
שימוש במודל כדי לחזות סיווגים
SQL
כדי לחזות נתונים באמצעות המודל:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מדביקים את השאילתה הבאה ולוחצים על Run (הרצה):
SELECT * FROM ML.PREDICT (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'prediction' ) );
העמודות הראשונות בתוצאות אמורות להיראות כך:
+---------------------------+--------------------------------------+-------------------------------------+ | predicted_income_bracket | predicted_income_bracket_probs.label | predicted_income_bracket_probs.prob | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.05183430016040802 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.94816571474075317 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.00365859130397439 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.99634140729904175 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.037775970995426178 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.96222406625747681 | +---------------------------+--------------------------------------+-------------------------------------+
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
השדה predicted_income_bracket מכיל את הערך החזוי מהמודל.
בעמודה predicted_income_bracket_probs.label מוצגות שתי התוויות שהמודל היה צריך לבחור ביניהן, ובעמודה predicted_income_bracket_probs.prob מוצג הסיכוי שהתווית שצוינה היא התווית הנכונה.
מידע נוסף על עמודות הפלט זמין במאמר בנושא מודלים של סיווג.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
- אתם יכולים למחוק את הפרויקט שיצרתם.
- אפשר גם להשאיר את הפרויקט ולמחוק את קבוצת הנתונים.
מחיקת מערך נתונים
אם מוחקים פרויקט, כל מערכי הנתונים וכל הטבלאות בפרויקט נמחקים. אם אתם מעדיפים להשתמש מחדש בפרויקט, אתם יכולים למחוק את מערך הנתונים שיצרתם במדריך הזה:
אם צריך, פותחים את הדף BigQuery במסוףCloud de Confiance .
בחלונית הניווט, לוחצים על מערך הנתונים bqml_tutorial שיצרתם.
בצד שמאל של החלון, לוחצים על מחיקת מערך נתונים. הפעולה הזו מוחקת את מערך הנתונים, את הטבלה ואת כל הנתונים.
בתיבת הדו-שיח מחיקת מערך נתונים, מקלידים את שם מערך הנתונים (
bqml_tutorial) כדי לאשר את פקודת המחיקה, ואז לוחצים על מחיקה.
מחיקת פרויקט
כדי למחוק את הפרויקט:
- במסוף Cloud de Confiance , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
- כך יוצרים מודל סיווג של רגרסיה לוגיסטית.
- סקירה כללית על BigQuery ML זמינה במאמר מבוא ל-AI ול-ML ב-BigQuery.