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

במדריך הזה תשתמשו במודל רגרסיה לוגיסטית בינארי ב-BigQuery ML כדי לחזות את טווח ההכנסה של אנשים על סמך נתונים דמוגרפיים. מודל רגרסיה לוגיסטית בינארית מנבא אם ערך מסוים משתייך לאחת משתי קטגוריות. במקרה הזה, המודל מנבא אם ההכנסה השנתית של אדם מסוים גבוהה מ-50,000 $או נמוכה ממנה.

במדריך הזה נעשה שימוש במערך הנתונים bigquery-public-data.ml_datasets.census_adult_income. קבוצת הנתונים הזו מכילה מידע דמוגרפי ומידע על הכנסות של תושבי ארה"ב משנת 2000 ומשנת 2010.

מטרות

במדריך הזה תבצעו את המשימות הבאות:

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

עלויות

במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים, כולל הרכיבים הבאים:

  • BigQuery
  • BigQuery ML

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

מידע נוסף על העלויות של BigQuery ML זמין במאמר תמחור ב-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. Enable the BigQuery API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

כדי ליצור את המודל באמצעות BigQuery ML, אתם צריכים את הרשאות ה-IAM הבאות:

  • bigquery.jobs.create
  • bigquery.models.create
  • bigquery.models.getData
  • bigquery.models.updateData
  • bigquery.models.updateMetadata

כדי להריץ הסקה, אתם צריכים את ההרשאות הבאות:

  • bigquery.models.getData במודל
  • bigquery.jobs.create

מבוא

משימה נפוצה בלמידת מכונה היא לסווג נתונים לאחד משני סוגים, שנקראים תוויות. לדוגמה, קמעונאי יכול לרצות לחזות אם לקוח מסוים ירכוש מוצר חדש, על סמך מידע אחר על אותו לקוח. במקרה כזה, שתי התוויות יכולות להיות will buy ו-won't buy. הקמעונאי יכול ליצור מערך נתונים שבו עמודה אחת מייצגת את שתי התוויות, וכוללת גם נתוני לקוח כמו המיקום שלו, הרכישות הקודמות שלו וההעדפות המדווחות שלו. לאחר מכן, הקמעונאי יכול להשתמש במודל רגרסיה לוגיסטית בינארית שמתבסס על נתוני הלקוח האלה כדי לחזות איזו תווית מייצגת בצורה הטובה ביותר כל לקוח.

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

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

יוצרים מערך נתונים ב-BigQuery לאחסון המודל:

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

    כניסה ל-BigQuery

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

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

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בחלונית Explorer, לוחצים על שם הפרויקט.

  4. לוחצים על הצגת פעולות > יצירת מערך נתונים.

  5. בדף Create dataset, מבצעים את הפעולות הבאות:

    • בשדה Dataset ID (מזהה מערך הנתונים), מזינים census.

    • בשדה Location type, בוחרים באפשרות במספר אזורים ואז באפשרות US (multiple regions in United States).

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

    • משאירים את שאר הגדרות ברירת המחדל כמו שהן ולוחצים על יצירת מערך נתונים.

בדיקת הנתונים

בודקים את מערך הנתונים ומזהים את העמודות שבהן צריך להשתמש כנתוני אימון למודל הרגרסיה הלוגיסטית. בוחרים 100 שורות מהטבלה census_adult_income:

SQL

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

    כניסה ל-BigQuery

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

    SELECT
    age,
    workclass,
    marital_status,
    education_num,
    occupation,
    hours_per_week,
    income_bracket,
    functional_weight
    FROM
    `bigquery-public-data.ml_datasets.census_adult_income`
    LIMIT
    100;
  3. התוצאות אמורות להיראות כך:

    נתוני מפקד האוכלוסין

‫BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במאמר BigQuery quickstart using BigQuery DataFrames. מידע נוסף זמין במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import bigframes.pandas as bpd

df = bpd.read_gbq(
    "bigquery-public-data.ml_datasets.census_adult_income",
    columns=(
        "age",
        "workclass",
        "marital_status",
        "education_num",
        "occupation",
        "hours_per_week",
        "income_bracket",
        "functional_weight",
    ),
    max_results=100,
)
df.peek()
# Output:
# age      workclass       marital_status  education_num          occupation  hours_per_week income_bracket  functional_weight
#  47      Local-gov   Married-civ-spouse             13      Prof-specialty              40           >50K             198660
#  56        Private        Never-married              9        Adm-clerical              40          <=50K              85018
#  40        Private   Married-civ-spouse             12        Tech-support              40           >50K             285787
#  34   Self-emp-inc   Married-civ-spouse              9        Craft-repair              54           >50K             207668
#  23        Private   Married-civ-spouse             10   Handlers-cleaners              40          <=50K              40060

תוצאות השאילתה מראות שהעמודה income_bracket בטבלה census_adult_income מכילה רק אחד משני ערכים: <=50K או >50K.

הכנת הנתונים לדוגמה

במדריך הזה, תלמדו איך לחזות את ההכנסה של משיבים לסקר על סמך הערכים בעמודות הבאות בטבלה census_adult_income:

  • age: הגיל של המשיב/ה.
  • workclass: סוג העבודה שבוצעה. לדוגמה, ממשלה מקומית, פרטי או עצמאי.
  • marital_status
  • education_num: רמת ההשכלה הגבוהה ביותר של המשיב.
  • occupation
  • hours_per_week: שעות עבודה בשבוע.

אתם יכולים להחריג עמודות שכוללות נתונים כפולים. לדוגמה, בעמודה education, כי הערכים בעמודות education ו-education_num מבטאים את אותם נתונים בפורמטים שונים.

העמודה functional_weight היא מספר האנשים שלדעת ארגון המפקד מיוצגים בשורה מסוימת. מכיוון שהערך של העמודה הזו לא קשור לערך של income_bracket בשורה נתונה, אפשר להשתמש בערך שבעמודה הזו כדי להפריד את הנתונים לקבוצות של אימון, הערכה וחיזוי. לשם כך, יוצרים עמודה חדשה dataframe שנגזרת מהעמודה functional_weight. אתם מתייגים 80% מהנתונים לאימון המודל, 10% מהנתונים להערכה ו-10% מהנתונים לחיזוי.

SQL

יוצרים תצוגה מפורטת עם הנתונים לדוגמה. התצוגה הזו משמשת את ההצהרה CREATE MODEL בהמשך המדריך הזה.

מריצים את השאילתה שמכינה את הנתונים לדוגמה:

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

    כניסה ל-BigQuery

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

    CREATE OR REPLACE VIEW
    `census.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`;
  3. צפייה בנתונים לדוגמה:

    SELECT * FROM `census.input_data`;

‫BigQuery DataFrames

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

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במאמר BigQuery quickstart using BigQuery DataFrames. מידע נוסף זמין במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import bigframes.pandas as bpd

input_data = bpd.read_gbq(
    "bigquery-public-data.ml_datasets.census_adult_income",
    columns=(
        "age",
        "workclass",
        "marital_status",
        "education_num",
        "occupation",
        "hours_per_week",
        "income_bracket",
        "functional_weight",
    ),
)
input_data["dataframe"] = bpd.Series("training", index=input_data.index,).case_when(
    [
        (((input_data["functional_weight"] % 10) == 8), "evaluation"),
        (((input_data["functional_weight"] % 10) == 9), "prediction"),
    ]
)
del input_data["functional_weight"]

יצירה של מודל רגרסיה לוגיסטית

יוצרים מודל רגרסיה לוגיסטית עם נתוני האימון שסימנתם בתוויות בקטע הקודם.

SQL

משתמשים בהצהרת CREATE MODEL ומציינים את LOGISTIC_REG כסוג המודל.

הנה כמה פרטים חשובים על הצהרת CREATE MODEL:

  • האפשרות input_label_cols מציינת איזו עמודה בהצהרת SELECT תשמש כעמודת התוויות. כאן, עמודת התווית היא income_bracket, ולכן המודל לומד איזה מבין שני הערכים של income_bracket הוא הסביר ביותר לשורה נתונה, על סמך הערכים האחרים שמופיעים בשורה הזו.

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

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

  • האפשרות enable_global_explain מוגדרת לערך TRUE כדי לאפשר לכם להשתמש בפונקציה ML.GLOBAL_EXPLAIN במודל בהמשך המדריך.

  • השאילתה של SELECT מבצעת שאילתה בתצוגה input_data שמכילה את הנתונים לדוגמה. הסעיף WHERE מסנן את השורות כך שרק השורות שמסומנות כנתוני אימון ישמשו לאימון המודל.

מריצים את השאילתה שיוצרת את מודל הרגרסיה הלוגיסטית:

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

    כניסה ל-BigQuery

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

    CREATE OR REPLACE MODEL
    `census.census_model`
    OPTIONS
    ( model_type='LOGISTIC_REG',
      auto_class_weights=TRUE,
      enable_global_explain=TRUE,
      data_split_method='NO_SPLIT',
      input_label_cols=['income_bracket'],
      max_iterations=15) AS
    SELECT * EXCEPT(dataframe)
    FROM
    `census.input_data`
    WHERE
    dataframe = 'training'
  3. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

  4. בחלונית Explorer, לוחצים על Datasets.

  5. בחלונית מערכי נתונים, לוחצים על census.

  6. לוחצים על הכרטיסייה מודלים.

  7. לחץ על census_model.

  8. בכרטיסייה פרטים מפורטים המאפיינים שבהם נעשה שימוש ב-BigQuery ML כדי לבצע רגרסיה לוגיסטית.

‫BigQuery DataFrames

משתמשים בשיטה fit כדי לאמן את המודל ובשיטה to_gbq כדי לשמור אותו במערך הנתונים.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במאמר BigQuery quickstart using BigQuery DataFrames. מידע נוסף זמין במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import bigframes.ml.linear_model

# input_data is defined in an earlier step.
training_data = input_data[input_data["dataframe"] == "training"]
X = training_data.drop(columns=["income_bracket", "dataframe"])
y = training_data["income_bracket"]

census_model = bigframes.ml.linear_model.LogisticRegression(
    # Balance the class labels in the training data by setting
    # class_weight="balanced".
    #
    # By default, the training data is unweighted. If the labels
    # in the training data are imbalanced, the model may learn to
    # predict the most popular class of labels more heavily. In
    # this case, most of the respondents in the dataset are in the
    # lower income bracket. This may lead to a model that predicts
    # the lower income bracket too heavily. Class weights balance
    # the class labels by calculating the weights for each class in
    # inverse proportion to the frequency of that class.
    class_weight="balanced",
    max_iterations=15,
)
census_model.fit(X, y)

census_model.to_gbq(
    your_model_id,  # For example: "your-project.census.census_model"
    replace=True,
)

הערכת הביצועים של המודל

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

SQL

הפונקציה ML.EVALUATE מעריכה את הערכים החזויים שנוצרו על ידי המודל ביחס לנתוני ההערכה.

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

מריצים את השאילתה ML.EVALUATE:

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

    כניסה ל-BigQuery

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

    SELECT
    *
    FROM
    ML.EVALUATE (MODEL `census.census_model`,
      (
      SELECT
        *
      FROM
        `census.input_data`
      WHERE
        dataframe = 'evaluation'
      )
    );
  3. התוצאות אמורות להיראות כך:

    פלט של ML.EVALUATE

‫BigQuery DataFrames

משתמשים ב-method‏ score כדי להעריך את המודל בהשוואה לנתונים בפועל.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במאמר BigQuery quickstart using BigQuery DataFrames. מידע נוסף זמין במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

# Select model you'll use for predictions. `read_gbq_model` loads model
# data from BigQuery, but you could also use the `census_model` object
# from previous steps.
census_model = bpd.read_gbq_model(
    your_model_id,  # For example: "your-project.census.census_model"
)

# input_data is defined in an earlier step.
evaluation_data = input_data[input_data["dataframe"] == "evaluation"]
X = evaluation_data.drop(columns=["income_bracket", "dataframe"])
y = evaluation_data["income_bracket"]

# The score() method evaluates how the model performs compared to the
# actual data. Output DataFrame matches that of ML.EVALUATE().
score = census_model.score(X, y)
score.peek()
# Output:
#    precision    recall  accuracy  f1_score  log_loss   roc_auc
# 0   0.685764  0.536685   0.83819  0.602134  0.350417  0.882953

אפשר גם לעיין בחלונית הערכה של המודל במסוף Google Cloud כדי לראות את מדדי ההערכה שחושבו במהלך האימון:

פלט של ML.EVALUATE

חיזוי של קבוצת ההכנסה

משתמשים במודל כדי לחזות את קבוצת ההכנסה הסבירה ביותר לכל משיב.

SQL

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

מריצים את השאילתה ML.PREDICT:

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

    כניסה ל-BigQuery

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

    SELECT
    *
    FROM
    ML.PREDICT (MODEL `census.census_model`,
      (
      SELECT
        *
      FROM
        `census.input_data`
      WHERE
        dataframe = 'prediction'
      )
    );
  3. התוצאות אמורות להיראות כך:

    תוצאות של ML.PREDICT

בעמודה predicted_income_bracket מופיע טווח ההכנסה החזוי של המשיב.

‫BigQuery DataFrames

משתמשים ב-method‏ predict כדי ליצור תחזיות לגבי קבוצת ההכנסה הסבירה.

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במאמר BigQuery quickstart using BigQuery DataFrames. מידע נוסף זמין במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

# Select model you'll use for predictions. `read_gbq_model` loads model
# data from BigQuery, but you could also use the `census_model` object
# from previous steps.
census_model = bpd.read_gbq_model(
    your_model_id,  # For example: "your-project.census.census_model"
)

# input_data is defined in an earlier step.
prediction_data = input_data[input_data["dataframe"] == "prediction"]

predictions = census_model.predict(prediction_data)
predictions.peek()
# Output:
#           predicted_income_bracket                     predicted_income_bracket_probs  age workclass  ... occupation  hours_per_week income_bracket   dataframe
# 18004                    <=50K  [{'label': ' >50K', 'prob': 0.0763305999358786...   75         ?  ...          ?               6          <=50K  prediction
# 18886                    <=50K  [{'label': ' >50K', 'prob': 0.0448866871906495...   73         ?  ...          ?              22           >50K  prediction
# 31024                    <=50K  [{'label': ' >50K', 'prob': 0.0362982319421936...   69         ?  ...          ?               1          <=50K  prediction
# 31022                    <=50K  [{'label': ' >50K', 'prob': 0.0787836112058324...   75         ?  ...          ?               5          <=50K  prediction
# 23295                    <=50K  [{'label': ' >50K', 'prob': 0.3385373037905673...   78         ?  ...          ?              32          <=50K  prediction

הסבר על תוצאות התחזית

כדי להבין למה המודל מפיק את תוצאות התחזית האלה, אפשר להשתמש בפונקציה ML.EXPLAIN_PREDICT.

ML.EXPLAIN_PREDICT היא גרסה מורחבת של הפונקציה ML.PREDICT. ML.EXPLAIN_PREDICT לא רק מפיק תוצאות של תחזיות, אלא גם מפיק עמודות נוספות כדי להסביר את תוצאות התחזיות. מידע נוסף על יכולת הסברה זמין במאמר סקירה כללית על AI שניתן להסברה ב-BigQuery ML.

מריצים את השאילתה ML.EXPLAIN_PREDICT:

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

    כניסה ל-BigQuery

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

    SELECT
    *
    FROM
    ML.EXPLAIN_PREDICT(MODEL `census.census_model`,
      (
      SELECT
        *
      FROM
        `census.input_data`
      WHERE
        dataframe = 'evaluation'),
      STRUCT(3 as top_k_features));
  3. התוצאות אמורות להיראות כך:

    פלט של ML.EXPLAIN_PREDICT

במודלים של רגרסיה לוגיסטית, נעשה שימוש בערכי Shapley כדי לקבוע את השיוך היחסי של התכונות לכל תכונה במודל. מכיוון שהאפשרות top_k_features הוגדרה ל-3 בשאילתה, ML.EXPLAIN_PREDICT מפיק את שלושת השיוכים של התכונות המובילות לכל שורה בתצוגה input_data. השיוכים האלה מוצגים בסדר יורד לפי הערך המוחלט של השיוך.

תסביר את המודל באופן גלובלי

כדי לדעת אילו תכונות הכי חשובות לקביעת קבוצת ההכנסה, משתמשים בפונקציה ML.GLOBAL_EXPLAIN.

קבלת הסברים גלובליים לגבי המודל:

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

    כניסה ל-BigQuery

  2. בעורך השאילתות, מריצים את השאילתה הבאה כדי לקבל הסברים גלובליים:

    SELECT
      *
    FROM
      ML.GLOBAL_EXPLAIN(MODEL `census.census_model`)
  3. התוצאות אמורות להיראות כך:

    פלט של ML.GLOBAL_EXPLAIN

הסרת המשאבים

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

מחיקת מערך נתונים

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

  1. אם צריך, פותחים את הדף BigQuery במסוףGoogle Cloud .

    לדף BigQuery

  2. בתפריט הניווט, לוחצים על מערך הנתונים census שיצרתם.

  3. בצד שמאל של החלון, לוחצים על מחיקת מערך נתונים. הפעולה הזו מוחקת את מערך הנתונים ואת המודל.

  4. בתיבת הדו-שיח מחיקת מערך נתונים, מקלידים את שם מערך הנתונים (census) כדי לאשר את פקודת המחיקה, ואז לוחצים על מחיקה.

מחיקת פרויקט

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

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