تحليل نموذج تعلُّم الآلة المالي المنشور على Cloud AI Platform باستخدام أداة "ماذا لو"

1. نظرة عامة

في هذا التمرين العملي، ستستخدم أداة What-if لتحليل نموذج XGBoost تم تدريبه على بيانات مالية ونشره على Cloud AI Platform.

ما ستتعرّف عليه

ستتعرَّف على كيفية:

  • تدريب نموذج XGBoost على مجموعة بيانات علنية خاصة بالقروض العقارية في "دفاتر ملاحظات AI Platform"
  • نشر نموذج XGBoost على AI Platform
  • تحليل النموذج باستخدام أداة What-if

يبلغ إجمالي تكلفة تشغيل هذا الدرس التطبيقي على Google Cloud حوالي 1 دولار أمريكي.

2. لمحة سريعة عن خوارزمية تعزيز التدرّج الشديد (XGBoost)

XGBoost هو إطار عمل لتعلُّم الآلة يستخدم أشجار القرارات وتحسين التدرّج لإنشاء نماذج تنبؤية. تعمل هذه الطريقة من خلال تجميع عدة أشجار قرارات معًا استنادًا إلى النتيجة المرتبطة بعُقد أوراق مختلفة في الشجرة.

المخطط البياني أدناه هو تمثيل مرئي لنموذج شجرة قرارات بسيط يقيّم ما إذا كان يجب لعب مباراة رياضية استنادًا إلى توقعات الطقس:

308a0bfc70733abf.png

لماذا نستخدم XGBoost لهذا النموذج؟ في حين أنّ الشبكات العصبونية التقليدية أثبتت أنّها الأفضل في التعامل مع البيانات غير المنظَّمة، مثل الصور والنصوص، غالبًا ما تكون أشجار القرارات فعّالة للغاية في التعامل مع البيانات المنظَّمة، مثل مجموعة بيانات الرهن العقاري التي سنستخدمها في هذا الدرس التطبيقي حول الترميز.

3- إعداد البيئة

يجب أن يكون لديك مشروع على Google Cloud Platform مع تفعيل الفوترة لتتمكّن من تنفيذ هذا الدرس العملي. لإنشاء مشروع، اتّبِع التعليمات هنا.

الخطوة 1: تفعيل Cloud AI Platform Models API

انتقِل إلى قسم AI Platform Models في Cloud Console وانقر على "تفعيل" إذا لم تكن الميزة مفعَّلة بعد.

d0d38662851c6af3.png

الخطوة 2: تفعيل واجهة برمجة التطبيقات Compute Engine API

انتقِل إلى Compute Engine وانقر على تفعيل إذا لم يكن مفعّلاً بعد. يجب توفير هذه المعلومات لإنشاء مثيل دفتر الملاحظات.

الخطوة 3: إنشاء مثيل AI Platform Notebooks

انتقِل إلى قسم "دفاتر ملاحظات AI Platform" في Cloud Console وانقر على إنشاء مثيل جديد. بعد ذلك، اختَر نوع مثيل أحدث إصدار من TF Enterprise 2.x بدون وحدات معالجة الرسومات:

7d16190440ab2e9c.png

استخدِم الخيارات التلقائية، ثم انقر على إنشاء. بعد إنشاء المثيل، انقر على فتح JupyterLab:

772f8868d3841ba0.png

الخطوة 4: تثبيت XGBoost

بعد فتح مثيل JupyterLab، عليك إضافة حزمة XGBoost.

لإجراء ذلك، اختَر "الوحدة الطرفية" من مشغّل التطبيقات:

28dcf2790ce77c96.png

بعد ذلك، شغِّل الأمر التالي لتثبيت أحدث إصدار من XGBoost متوافق مع Cloud AI Platform:

pip3 install xgboost==0.90

بعد اكتمال هذه العملية، افتح مثيلاً لدفتر ملاحظات Python 3 من مشغّل التطبيقات. أنت الآن جاهز للبدء في دفتر الملاحظات.

الخطوة 5: استيراد حِزم Python

في الخلية الأولى من دفتر الملاحظات، أضِف عمليات الاستيراد التالية وشغِّل الخلية. يمكنك تشغيله من خلال الضغط على زر السهم المتّجه لليسار في القائمة العلوية أو الضغط على command-enter:

import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

4. تنزيل البيانات ومعالجتها

سنستخدم مجموعة بيانات الرهن العقاري من ffiec.gov لتدريب نموذج XGBoost. لقد أجرينا بعض المعالجة المسبقة على مجموعة البيانات الأصلية وأنشأنا نسخة أصغر لتستخدمها في تدريب النموذج. سيتنبأ النموذج بما إذا كان سيتمّ قبول طلب رهن عقاري معيّن أم لا.

الخطوة 1: تنزيل مجموعة البيانات التي تمت معالجتها مسبقًا

لقد أتحنا لك نسخة من مجموعة البيانات في Google Cloud Storage. يمكنك تنزيلها من خلال تنفيذ الأمر gsutil التالي في دفتر ملاحظات Jupyter:

!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .

الخطوة 2: قراءة مجموعة البيانات باستخدام Pandas

قبل إنشاء Pandas DataFrame، سننشئ قاموسًا لكل نوع بيانات عمود حتى تتمكّن Pandas من قراءة مجموعة البيانات بشكل صحيح:

COLUMN_NAMES = collections.OrderedDict({
 'as_of_year': np.int16,
 'agency_code': 'category',
 'loan_type': 'category',
 'property_type': 'category',
 'loan_purpose': 'category',
 'occupancy': np.int8,
 'loan_amt_thousands': np.float64,
 'preapproval': 'category',
 'county_code': np.float64,
 'applicant_income_thousands': np.float64,
 'purchaser_type': 'category',
 'hoepa_status': 'category',
 'lien_status': 'category',
 'population': np.float64,
 'ffiec_median_fam_income': np.float64,
 'tract_to_msa_income_pct': np.float64,
 'num_owner_occupied_units': np.float64,
 'num_1_to_4_family_units': np.float64,
 'approved': np.int8
})

بعد ذلك، سننشئ DataFrame، ونمرّر إليه أنواع البيانات التي حدّدناها أعلاه. من المهم ترتيب بياناتنا بشكل عشوائي في حال كانت مجموعة البيانات الأصلية مرتّبة بطريقة معيّنة. نستخدم أداة sklearn مساعدة باسم shuffle لإجراء ذلك، وقد استوردناها في الخلية الأولى:

data = pd.read_csv(
 'mortgage-small.csv',
 index_col=False,
 dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()

تتيح لنا data.head() معاينة الصفوف الخمسة الأولى من مجموعة البيانات في Pandas. من المفترض أن يظهر لك ما يلي بعد تشغيل الخلية أعلاه:

29106b71103235a6.png

هذه هي الميزات التي سنستخدمها لتدريب نموذجنا. إذا انتقلت إلى نهاية الجدول، سيظهر لك العمود الأخير approved، وهو ما نتوقّعه. تشير القيمة 1 إلى أنّه تمت الموافقة على تطبيق معيّن، وتشير القيمة 0 إلى أنّه تم رفضه.

للاطّلاع على توزيع القيم المقبولة أو المرفوضة في مجموعة البيانات وإنشاء صفيفة numpy للتصنيفات، نفِّذ ما يلي:

# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())

labels = data['approved'].values
data = data.drop(columns=['approved'])

يحتوي% 66 تقريبًا من مجموعة البيانات على تطبيقات تمت الموافقة عليها.

الخطوة 3: إنشاء عمود وهمي للقيم الفئوية

تحتوي مجموعة البيانات هذه على مزيج من القيم الفئوية والرقمية، ولكن يتطلّب XGBoost أن تكون جميع الميزات رقمية. بدلاً من تمثيل القيم الفئوية باستخدام الترميز الأحادي، سنستفيد من الدالة get_dummies في Pandas لنموذج XGBoost.

تأخذ الدالة get_dummies عمودًا يتضمّن قيمًا محتمَلة متعددة وتحوّله إلى سلسلة من الأعمدة يتضمّن كلّ منها أصفارًا وآحادًا فقط. على سبيل المثال، إذا كان لدينا عمود "اللون" مع القيم المحتملة "أزرق" و "أحمر"، سيحوّل get_dummies ذلك إلى عمودَين باسم "اللون_أزرق" و "اللون_أحمر" مع جميع القيم المنطقية 0 و1.

لإنشاء أعمدة وهمية للميزات الفئوية، شغِّل الرمز التالي:

dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)

data.head()

عند معاينة البيانات هذه المرة، ستظهر لك ميزات فردية (مثل purchaser_type الموضّحة أدناه) مقسّمة إلى أعمدة متعددة:

83aacfaad626e538.png

الخطوة 4: تقسيم البيانات إلى مجموعات تدريب واختبار

من المفاهيم المهمة في تعلُّم الآلة تقسيم البيانات إلى مجموعتَي التدريب والاختبار. سنأخذ معظم بياناتنا ونستخدمها لتدريب نموذجنا، وسنحتفظ بالباقي لاختبار نموذجنا على بيانات لم يسبق له أن رآها.

أضِف الرمز التالي إلى دفتر ملاحظاتك، والذي يستخدم دالة Scikit Learn train_test_split لتقسيم بياناتنا:

x,y = data,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

أنت الآن جاهز لإنشاء نموذجك وتدريبه.

5- إنشاء نموذج XGBoost وتدريبه وتقييمه

الخطوة 1: تحديد نموذج XGBoost وتدريبه

إنشاء نموذج في XGBoost هو أمر بسيط. سنستخدم الفئة XGBClassifier لإنشاء النموذج، وسنحتاج فقط إلى تمرير المَعلمة objective المناسبة لمهمة التصنيف المحدّدة. في هذه الحالة، نستخدم reg:logistic لأنّ لدينا مشكلة تصنيف ثنائي ونريد أن يعرض النموذج قيمة واحدة في النطاق (0,1): 0 لغير الموافق عليه و1 للموافق عليه.

ستنشئ التعليمة البرمجية التالية نموذج XGBoost:

model = xgb.XGBClassifier(
    objective='reg:logistic'
)

يمكنك تدريب النموذج باستخدام سطر واحد من الرمز البرمجي، وذلك من خلال استدعاء طريقة fit() وتمرير بيانات التدريب والتصنيفات إليها.

model.fit(x_train, y_train)

الخطوة 2: تقييم دقة النموذج

يمكننا الآن استخدام النموذج المدرَّب لإنشاء توقّعات بشأن بيانات الاختبار باستخدام الدالة predict().

بعد ذلك، سنستخدم الدالة accuracy_score في Scikit Learn لحساب دقة النموذج استنادًا إلى أدائه في بيانات الاختبار. سنمرّر إليها قيم الحقيقة الأساسية مع القيم المتوقّعة للنموذج لكل مثال في مجموعة الاختبار:

y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')

من المفترض أن تظهر لك دقة تبلغ حوالي 87%، ولكن قد تختلف هذه النسبة قليلاً لأنّ التعلّم الآلي يتضمّن دائمًا عنصرًا من العشوائية.

الخطوة 3: حفظ النموذج

لتوزيع النموذج، شغِّل الرمز التالي لحفظه في ملف محلي:

model.save_model('model.bst')

6. نشر النموذج على Cloud AI Platform

لقد نجحنا في تشغيل النموذج محليًا، ولكن سيكون من الرائع أن نتمكّن من إجراء توقّعات عليه من أي مكان (وليس فقط من دفتر الملاحظات هذا). في هذه الخطوة، سننفّذها على السحابة الإلكترونية.

الخطوة 1: إنشاء حزمة Cloud Storage للنموذج

لنبدأ أولاً بتحديد بعض متغيرات البيئة التي سنستخدمها في بقية الدرس العملي. املأ القيم أدناه باسم مشروعك على Google Cloud واسم حزمة التخزين في السحابة الإلكترونية التي تريد إنشاءها (يجب أن يكون الاسم فريدًا على مستوى العالم) واسم الإصدار الأول من نموذجك:

# Update these to your own GCP project, model, and version names
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
VERSION_NAME = 'v1'
MODEL_NAME = 'xgb_mortgage'

نحن الآن جاهزون لإنشاء حزمة تخزين لتخزين ملف نموذج XGBoost. سنشير إلى هذا الملف في Cloud AI Platform عند النشر.

نفِّذ أمر gsutil التالي من داخل دفتر ملاحظاتك لإنشاء حزمة:

!gsutil mb $MODEL_BUCKET

الخطوة 2: نسخ ملف النموذج إلى Cloud Storage

بعد ذلك، سننسخ ملف النموذج المحفوظ XGBoost إلى Cloud Storage. نفِّذ أمر gsutil التالي:

!gsutil cp ./model.bst $MODEL_BUCKET

انتقِل إلى متصفِّح مساحة التخزين في Cloud Console للتأكّد من نسخ الملف:

31e2567fa0117214.png

الخطوة 3: إنشاء النموذج ونشره

أوشكنا على الانتهاء من نشر النموذج. سينشئ أمر ai-platform gcloud التالي نموذجًا جديدًا في مشروعك. سنطلق على هذا الرقم xgb_mortgage:

!gcloud ai-platform models create $MODEL_NAME --region='global'

حان الآن وقت نشر النموذج. يمكننا إجراء ذلك باستخدام أمر gcloud التالي:

!gcloud ai-platform versions create $VERSION_NAME \
--model=$MODEL_NAME \
--framework='XGBOOST' \
--runtime-version=2.1 \
--origin=$MODEL_BUCKET \
--python-version=3.7 \
--project=$GCP_PROJECT \
--region='global'

أثناء تشغيل هذا البرنامج، اطّلِع على قسم النماذج في وحدة تحكّم AI Platform. من المفترض أن يظهر لك الإصدار الجديد الذي يتم نشره على النحو التالي:

342875ba92becad1.png

عند اكتمال عملية النشر بنجاح، ستظهر لك علامة اختيار خضراء في المكان الذي يظهر فيه مؤشر التحميل. من المفترض أن تستغرق عملية النشر من دقيقتَين إلى 3 دقائق.

الخطوة 4: اختبار النموذج الذي تم نشره

للتأكّد من أنّ النموذج الذي تم نشره يعمل، اختبِره باستخدام gcloud لإجراء عملية توقّع. أولاً، احفظ ملف JSON يتضمّن المثال الأول من مجموعة الاختبار:

%%writefile predictions.json
[2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]

اختبِر النموذج من خلال تشغيل الرمز التالي:

prediction = !gcloud ai-platform predict --model=xgb_mortgage --region='global' --json-instances=predictions.json --version=$VERSION_NAME --verbosity=none

print(prediction)

من المفترض أن تظهر لك نتيجة توقّع النموذج في الناتج. تمت الموافقة على هذا المثال تحديدًا، لذا من المفترض أن تظهر قيمة قريبة من 1.

7. استخدام أداة "ماذا لو" لتفسير نموذجك

الخطوة 1: إنشاء تمثيل مرئي لـ "أداة ماذا لو"

لربط أداة "ماذا لو" بنماذج AI Platform، عليك تمرير مجموعة فرعية من أمثلة الاختبار إليها مع قيم الحقيقة الأساسية لهذه الأمثلة. لننشئ صفيفة Numpy تضم 500 من أمثلة الاختبار مع تصنيفاتها الصحيحة:

num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples].values,y_test[:num_wit_examples].reshape(-1,1)))

إنشاء مثيل من "أداة What-if" بسيط مثل إنشاء عنصر WitConfigBuilder وتمرير نموذج AI Platform الذي نريد تحليله إليه.

نستخدم المَعلمة الاختيارية adjust_prediction هنا لأنّ أداة "ماذا لو؟" تتوقّع قائمة بالنتائج لكل فئة في نموذجنا (في هذه الحالة 2). بما أنّ النموذج يعرض قيمة واحدة فقط تتراوح بين 0 و1، نحولها إلى التنسيق الصحيح في هذه الدالة:

def adjust_prediction(pred):
  return [1 - pred, pred]

config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
  .set_ai_platform_model(GCP_PROJECT, MODEL_NAME, VERSION_NAME, adjust_prediction=adjust_prediction)
  .set_target_feature('mortgage_status')
  .set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)

يُرجى العِلم أنّ تحميل التمثيل المرئي سيستغرق دقيقة واحدة. عند تحميلها، من المفترض أن يظهر لك ما يلي:

4c0b00e6afcdbe01.png

يعرض المحور الصادي توقّعات النموذج، حيث يمثّل 1 توقّعًا approved بمستوى ثقة عالٍ، ويمثّل 0 توقّعًا denied بمستوى ثقة عالٍ. المحور س هو مجرد انتشار جميع نقاط البيانات التي تم تحميلها.

الخطوة 2: استكشاف نقاط البيانات الفردية

طريقة العرض التلقائية في "أداة ماذا لو" هي علامة التبويب محرّر نقاط البيانات. يمكنك هنا النقر على أي نقطة بيانات فردية للاطّلاع على ميزاتها وتغيير قيم الميزات ومعرفة كيف يؤثر هذا التغيير في توقّع النموذج لنقطة بيانات فردية.

في المثال أدناه، اخترنا نقطة بيانات قريبة من الحدّ 0 .5. تم الحصول على طلب الحصول على قرض عقاري المرتبط بنقطة البيانات المحدّدة هذه من "مكتب الحماية المالية للمستهلك". غيّرنا قيمة هذه الميزة إلى 0، وغيّرنا أيضًا قيمة agency_code_Department of Housing and Urban Development (HUD) إلى 1 لمعرفة تأثير ذلك في توقّعات النموذج إذا كان مصدر هذا القرض هو وزارة الإسكان والتنمية الحضرية:

717620d6a1330479.png

كما نرى في القسم السفلي الأيسر من "أداة ماذا لو"، أدى تغيير هذه الميزة بشكل كبير إلى خفض توقّع النموذج approved بنسبة %32. قد يشير ذلك إلى أنّ الجهة التي تم الحصول منها على القرض لها تأثير كبير في نتائج النموذج، ولكننا بحاجة إلى إجراء المزيد من التحليلات للتأكّد من ذلك.

في الجزء السفلي الأيسر من واجهة المستخدم، يمكننا أيضًا الاطّلاع على قيمة الحقيقة الأساسية لكل نقطة بيانات ومقارنتها بتوقّع النموذج:

60ff20ae80ed5e27.png

الخطوة 3: تحليل الوقائع الافتراضية

بعد ذلك، انقر على أي نقطة بيانات وحرِّك شريط التمرير عرض أقرب نقطة بيانات افتراضية إلى اليسار:

ae64fd7abefe5449.png

سيؤدي تحديد هذا الخيار إلى عرض نقطة البيانات التي تتضمّن قيم سمات مشابهة لتلك التي اخترتها في الأصل، ولكن مع توقّع معاكس. يمكنك بعد ذلك الانتقال سريعًا بين قيم السمة لمعرفة موضع اختلاف نقطتَي البيانات (يتم تمييز الاختلافات باللون الأخضر والخط العريض).

الخطوة 4: إلقاء نظرة على مخططات الاعتماد الجزئي

للاطّلاع على تأثير كل ميزة في توقّعات النموذج بشكل عام، ضَع علامة في المربّع رسومات التبعية الجزئية وتأكَّد من تحديد رسومات التبعية الجزئية العامة:

72117b5ceb683841.png

يمكننا هنا أن نرى أنّ القروض التي مصدرها وزارة الإسكان والتنمية الحضرية (HUD) لديها احتمال أعلى قليلاً للرفض. يكون الرسم البياني بهذا الشكل لأنّ رمز الوكالة هو ميزة منطقية، وبالتالي لا يمكن أن تكون القيم سوى 0 أو 1.

applicant_income_thousands هي ميزة رقمية، ويمكننا أن نرى في الرسم البياني للاعتماد الجزئي أنّ ارتفاع الدخل يزيد قليلاً من احتمال الموافقة على الطلب، ولكن فقط حتى حوالي 200 ألف دولار أمريكي. بعد بلوغ 200 ألف دولار أمريكي، لا تؤثر هذه الميزة في توقّعات النموذج.

الخطوة 5: استكشاف الأداء العام والإنصاف

بعد ذلك، انتقِل إلى علامة التبويب الأداء والإنصاف. تعرض هذه الصفحة إحصاءات الأداء العام لنتائج النموذج على مجموعة البيانات المقدَّمة، بما في ذلك مصفوفات الالتباس ومنحنيات الدقة والاستدعاء ومنحنيات ROC.

اختَر mortgage_status كعنصر Ground Truth Feature للاطّلاع على مصفوفة نجاح التوقعات:

fe1384ee47699498.png

تعرض مصفوفة نجاح التوقعات هذه التوقّعات الصحيحة والخاطئة التي قدّمها نموذجنا كنسبة مئوية من الإجمالي. إذا جمعت مربّعَي نعم الفعلية / نعم المتوقّعة ولا الفعلية / لا المتوقّعة، يجب أن يساوي ذلك الدقة نفسها التي حقّقها نموذجك (حوالي %87).

يمكنك أيضًا تجربة شريط تمرير الحدّ الأدنى، ورفع وخفض نتيجة التصنيف الإيجابي التي يحتاج النموذج إلى عرضها قبل أن يقرّر التوقّع approved للقرض، ومعرفة كيف يؤدي ذلك إلى تغيير الدقة والإيجابيات الخاطئة والسلبيات الخاطئة. في هذه الحالة، تكون الدقة في أعلى مستوياتها عند عتبة 0.55.

بعد ذلك، في القائمة المنسدلة التقسيم حسب على يمين الصفحة، اختَر loan_purpose_Home_purchase:

f3f1858d627d57ab.png

ستظهر لك الآن بيانات الأداء على المجموعتَين الفرعيتَين من بياناتك: يعرض القسم "0" الحالات التي لا يكون فيها القرض لشراء منزل، بينما يعرض القسم "1" الحالات التي يكون فيها القرض لشراء منزل. اطّلِع على معدّل الدقة ومعدّل النتائج الإيجابية الخاطئة ومعدّل النتائج السلبية الخاطئة بين الشريحتَين للبحث عن اختلافات في الأداء.

إذا وسّعت الصفوف للاطّلاع على مصفوفات الالتباس، يمكنك ملاحظة أنّ النموذج يتوقّع "موافقة" على% 70 تقريبًا من طلبات القروض لشراء المنازل، و% 46 فقط من القروض غير المخصّصة لشراء المنازل (ستختلف النسب المئوية الدقيقة حسب النموذج):

318a8d5a8ffc6bea.png

إذا اخترت تساوي الفئات الديمغرافية من أزرار الاختيار على اليمين، سيتم تعديل الحدّين ليتوقّع النموذج approved لنسبة مئوية مماثلة من مقدّمي الطلبات في كلتا الشريحتين. ما هو تأثير ذلك في الدقة والنتائج الإيجابية الخاطئة والنتائج السلبية الخاطئة لكل شريحة؟

الخطوة 6: استكشاف توزيع الميزات

أخيرًا، انتقِل إلى علامة التبويب الميزات في "أداة ماذا لو". تعرض هذه السمة توزيع القيم لكل ميزة في مجموعة البيانات:

48ab3c4879793324.png

يمكنك استخدام علامة التبويب هذه للتأكّد من أنّ مجموعة البيانات متوازنة. على سبيل المثال، يبدو أنّ عددًا قليلاً جدًا من القروض في مجموعة البيانات مصدره وكالة خدمات المزارع. لتحسين دقة النموذج، قد نفكّر في إضافة المزيد من القروض من تلك الوكالة إذا كانت البيانات متاحة.

لقد وصفنا هنا بعض الأفكار لاستكشاف "أداة ماذا لو؟". يمكنك مواصلة تجربة الأداة، فهناك العديد من المجالات الأخرى التي يمكنك استكشافها.

8. تنظيف

إذا أردت مواصلة استخدام دفتر الملاحظات هذا، ننصحك بإيقافه عندما لا يكون قيد الاستخدام. من واجهة مستخدم Notebooks في Cloud Console، اختَر دفتر الملاحظات، ثم انقر على إيقاف:

879147427150b6c7.png

إذا أردت حذف جميع المراجع التي أنشأتها في هذا المختبر، ما عليك سوى حذف مثيل دفتر الملاحظات بدلاً من إيقافه.

باستخدام قائمة "التنقّل" في Cloud Console، انتقِل إلى "مساحة التخزين" واحذف الحزمتَين اللتين أنشأتهما لتخزين مواد عرض النموذج.