وضع نماذج للانحدار في Ads Data Hub

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

  • ينشئ الانحدار الخطي دالة تناسب خطًا مع البيانات بحيث يتم تقليل المسافة بين نقاط البيانات والخط. ويمكن بعد ذلك استخدام هذا النموذج لتوقّع قيمة رقمية استنادًا إلى المدخلات، مثل توقّع القيمة الدائمة للمستخدم استنادًا إلى عمليات الشراء والتفاعلات السابقة وما إلى ذلك.
  • يُستخدَم الانحدار اللوجستي في مشكلات التصنيف التوقّعي. يمكن أن يكون النموذج من نوعَين استنادًا إلى عدد المتغيّرات التي تقدّمها:
    • يجيب الانحدار اللوجستي الثنائي عن أسئلة "نعم/لا"، مثل مدى احتمال وقوع حدث إحالة ناجحة.
    • يُستخدَم الانحدار اللوجستي المتعدّد الفئات للتنبؤ بقيم متعدّدة محتملة، مثل تحديد ما إذا كان العميل "ذو قيمة منخفضة" أو "ذو قيمة متوسطة" أو "ذو قيمة عالية".

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

الخصوصية التفاضلية

يستخدم كلّ من الانحدار الخطي والانحدار اللوجستي الخصوصية التفاضلية، وهو نظام مختلف من عمليات التحقّق من الخصوصية عن ذلك المستخدَم في العمليات الأخرى في Ads Data Hub. يضمن أسلوب "الخصوصية التفاضلية" خصوصية المستخدم النهائي من خلال إدخال تشويش في نتائجك أثناء عملية التدريب. يظلّ مستوى التشويش هذا منخفضًا بما يكفي ليظلّ بإمكانك الاستفادة من النتائج النهائية، ولكنه مرتفع بما يكفي لدرجة أنّه لا يمكن تحديد المستخدمين النهائيين. بالإضافة إلى ذلك، فإنّ مستوى التشويش غير محدّد، وبالتالي يكون للنتائج مستوى تشويش غير متّسق، ما يضمن بشكل أكبر خصوصية المستخدم النهائي.

الحدّ من طلبات البحث

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

آلية العمل

يتّبع سير العمل الخطوات الأساسية التالية:

  1. تجهيز بيانات التدريب
  2. أنشئ نموذجًا.
  3. جمع الإحصاءات من النموذج

إعداد بيانات التدريب

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

بشكلٍ تلقائي، يختار Ads Data Hub عشوائيًا% 18 من بيانات التدريب لاستخدامها في عملية التحقّق. يمكن التحكّم في النسبة المئوية للبيانات المستخدَمة في عملية التحقّق من خلال الخيار data_split_eval_fraction.

إنشاء نموذج

حدِّد المَعلمات وبيانات الإدخال لتدريب النموذج.

أفضل الممارسات

يُعدّ حجم مجموعة التدريب أحد أهم العوامل التي تؤثر في جودة النموذج. ومع ذلك، سيختلف مقياس الحجم/الجودة حسب المشكلة والعوامل المُدرَجة أدناه. يُرجى إطلاعنا على تجربتك.

  • لقد سجّلنا دقة تزيد عن 0.70 لنماذج الانحدار اللوجستي التي تم إنشاؤها من مجموعات تدريب تضمّ 100,000 مستخدم على الأقل.
  • لقد سجّلنا قيمة مربع R > 0.70 لنموذجَي الانحدار الخطي اللذَين تم إنشاؤهما من مجموعات تدريب تضمّ 800,000 مستخدم على الأقل.

هناك عوامل أخرى يمكن أن تقلّل من جودة النموذج.

  • النماذج اللوجستية التي تكون فيها فئة واحدة ممثّلة بشكلٍ أكبر بكثير من الفئات الأخرى على وجه التحديد، عندما يتضمّن تصنيف واحد عددًا قليلاً من مستخدمي مجموعة التدريب، من المحتمل ألا يساعد توفُّر الكثير من مستخدمي مجموعة التدريب الذين لديهم تصنيفات أخرى في تحسين دقة النموذج في التصنيف الصغير. على سبيل المثال، إنّ استخدام 20,000 و1,000 مستخدم في مجموعة التدريب لتصنيفَين هو أسوأ من استخدام 10,000 و2,000.
  • بيانات العناصر التي لا توفّر إشارة قوية للتصنيفات
  • البيانات الأولية التي تحتاج إلى مزيد من المعالجة المفصّلة للميزات على سبيل المثال، قد تحتوي بعض الحقول على عدد كبير جدًا من القيم المحتمَلة. من الطرق لتحسين البيانات من هذا النوع هي تحويل القيم إلى سمة تحتوي على عدد أقل من الفئات أو الحِزم.

جمع الإحصاءات

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

عبارة CREATE MODEL

ينشئ بيان CREATE MODEL نموذجًا بالاسم ومجموعة البيانات اللذين تحدّدهما. إذا كان اسم النموذج متوفّرًا، سيحلّ CREATE MODEL محلّ النموذج الحالي.

بنية CREATE MODEL

CREATE MODEL
model_name
OPTIONS
(
  // model_option_list:
  // Required parameter.
  MODEL_TYPE = { 'ADH_LINEAR_REGRESSION' | 'ADH_LOGISTIC_REGRESSION'}

  // Optional tuning parameters.
  [, L1_REG = float64_value ]
  [, L2_REG = float64_value ]
  [, DATA_SPLIT_EVAL_FRACTION = float64_value ]
  [, OPTIMIZE_STRATEGY = { 'AUTO_STRATEGY' | 'BATCH_GRADIENT_DESCENT' |
                           'NORMAL_EQUATION' } ]
  [, MAX_ITERATIONS = int64_value ]
  [, LEARN_RATE_STRATEGY = { 'LINE_SEARCH' | 'CONSTANT' } ]
  [, LEARN_RATE = float64_value ]
  [, EARLY_STOP = { TRUE | FALSE } ]
  [, MIN_REL_PROGRESS = float64_value ]
  [, LS_INIT_LEARN_RATE = float64_value ]
  [, EPSILON_PER_MODEL = float64_value ]
  [, AUTOMATIC_IMPUT_SCALING = bool_value ]
  [, MIN_MAX_SCALED_COLS = [string_value, string_value... ] ]
  [, STANDARD_SCALED_COLS = [string_value, string_value... ] ]
  [, QUANTILE_BUCKETIZED_COLS = [
        STRUCT(string_value AS col_name, int64_value AS num_buckets), 
       STRUCT(string_value AS col_name, int64_value AS num_buckets)... ] ]
)
AS query_statement

model_name

اسم أبجدي رقمي، بما في ذلك الشرطات السفلية والشرطات الأفقية لا يمكن أن يتضمّن نقاطًا. إذا كان اسم الطراز الذي تقدّمه متوفّرًا من قبل، سيتم استبدال الطراز القديم.

query_statement

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

model_option_list

model_type

(مطلوب) الخيار الوحيد المطلوب. يمكن أن يكون "adh_linear_regression" أو "adh_logistic_regression".

l1_reg

(اختياري) مقدار تسوية L1 المطبَّقة. تفرض تقنية L1 للوساطة عقوبات على الأوزان بما يتناسب مع مجموع القيم المطلقة للأوزان. يمكن أن يكون أي رقم غير سالب، وتكون القيمة التلقائية له هي صفر.

l2_reg

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

data_split_eval_fraction

(اختياري) يجب أن تتراوح بين 0 .01 و0 .99، وتكون القيمة التلقائية هي 0 .18. يحدِّد نسبة البيانات التي تنتهي في مجموعة التقييم. ويؤثّر ذلك في دقة النموذج من خلال تقليل عدد الصفوف التي تنتهي في النموذج، ولكنه يزيد أيضًا من عدد النماذج التي يمكن للمستخدم تشغيلها. في ما يلي رسم بياني لهذه العلاقة بافتراض أنّ كل نموذج في مجموعة بيانات معيّنة يتضمّن الكسر نفسه:

جزء التحقّق طلبات البحث المسموح بها
0.01 7
0.1 8
0.15 8
0.18 9
0.2 9
0.3 10
0.5 14
0.9 50

optimize_strategy

(اختياري) استراتيجية تدريب نماذج الانحدار الخطي

الوسيطات

يحدِّد "AUTO_STRATEGY" استراتيجية التدريب على النحو التالي:

  • في حال تحديد l1_reg أو warm_start، يتم استخدام استراتيجية batch_gradient_descent.
  • إذا كان إجمالي عدد القيم الفريدة لميزات التدريب أكثر من 10,000، يتم استخدام استراتيجية batch_gradient_descent.
  • إذا كانت هناك مشكلة في التكيّف المفرط (عدد أمثلة التدريب أقل من 10 • إجمالي عدد القيم الفريدة للسمة)، يتم استخدام استراتيجية batch_gradient_descent.
  • يتم استخدام استراتيجية NORMAL_EQUATION لجميع الحالات الأخرى.

BATCH_GRADIENT_DESCENT (للنمذجة اللوجستية فقط) تُدرِّب النموذج باستخدام طريقة التدرّج الصفري للمجموعة، ما يؤدي إلى تحسين دالة الخسارة باستخدام دالة التدرّج.

NORMAL_EQUATION (للانحدار الخطي فقط) تحسب مباشرةً حلّ المربعات الصغرى لمشكلة الانحدار الخطي باستخدام الصيغة التحليلية. لا يمكن استخدام المعادلة العادية في الحالات التالية:

  • تم تحديد l1_reg.
  • تم تحديد warm_start.
  • إجمالي عدد القيم الفريدة لميزات التدريب أكثر من 10,000.
  • القيمة التلقائية هي AUTO_STRATEGY.

max_iterations

(اختياري) عدد تكرارات أو خطوات التدريب بما أنّ طلب البحث هذا ينشئ شجرة واحدة لكل تكرار، هذا هو أيضًا عدد الأشجار. يجب أن يكون عددًا صحيحًا أكبر من 1. القيمة التلقائية هي 20.

learn_rate_strategy

(اختياري، لوجستي فقط) استراتيجية تحديد معدّل التعلّم أثناء التدريب

الوسيطات

يستخدم "LINE_SEARCH" طريقة البحث عن الخط لحساب معدّل التعلّم. معدّل التعلّم الأوّلي لميزة البحث عن السطر هو القيمة المحدّدة لـ LS_INIT_LEARN_RATE .

  • يؤدّي البحث عن السطر إلى إبطاء عملية التدريب وزيادة عدد البايتات التي تتم معالجتها، ولكنه يتقارب بشكل عام حتى مع معدّل تعلّم أوّلي محدّد أكبر.

تضبط "CONSTANT" معدّل التعلّم على القيمة المحدّدة لـ LEARN_RATE.

القيمة التلقائية هي LINE_SEARCH.

learn_rate

(اختياري، لوجستي فقط) معدّل التعلّم لطريقة التدرّج التنازلي عند ضبط LEARN_RATE_STRATEGY على CONSTANT. إذا تم ضبط LEARN_RATE_STRATEGY على LINE_SEARCH، يتم عرض خطأ.

الوسيطات

يمكن أن يكون float64_value أي عدد عشري 64 بت. القيمة التلقائية هي 0.1 (%10).

early_stop

(اختياري) يحدد ما إذا كان يجب إيقاف التدريب بعد التكرار الأول الذي يكون فيه تحسن الخسارة النسبية أقل من القيمة المحددة لـ MIN_REL_PROGRESS.

الوسيطات

TRUE للإشارة إلى "نعم"، وFALSE للإشارة إلى "لا". الإعداد التلقائي هو TRUE.

min_rel_progress

(اختياري) الحد الأدنى لتحسين الخسارة النسبية الضروري لمواصلة التدريب عند ضبط EARLY_STOP على true. على سبيل المثال، تشير القيمة 0.01 إلى أنّه يجب أن تقلّل كلّ تكرار من الخسارة بنسبة% 1 لكي يستمرّ التدريب.

الوسيطات

يمكن أن يكون float64_value أي عدد عشري 64 بت. القيمة التلقائية هي 0.1 (%10).

ls_init_learn_rate

(اختياري) لضبط معدّل التعلّم الأوّلي الذي يستخدمه LEARN_RATE_STRATEGY='LINE_SEARCH' لا يمكن استخدام هذا الخيار إلا إذا تم تحديد LINE_SEARCH.

إذا بدا أنّ LEARN_RATE للنموذج يتضاعف في كل تكرار كما هو موضّح في ML.TRAINING_INFO، جرِّب ضبط LS_INIT_LEARN_RATE على آخر معدّل تعلُّم مضاعَف. يختلف معدّل التعلّم الأوّلي الأمثل لكلّ نموذج. قد لا يكون معدّل التعلّم الأوّلي الجيد لنموذج معيّن مناسبًا لنموذج آخر.

الوسيطات

يمكن أن يكون float64_value أي عدد عشري 64 بت.

epsilon_per_model

(اختياري) يحدِّد مقدار ميزانية الخصوصية التي سيتم استخدامها لتدريب هذا النموذج. يحصل كل عميل لبيانات الإعلانات على ميزانية خصوصية بقيمة 10.0 لكل يوم بيانات. سينفِق النموذج الذي تم تدريبه بنجاح EPSILON_PER_MODEL من الميزانية لكل يوم بيانات في النطاق الزمني المحدّد عند تنفيذ طلب البحث. سيسمح استخدام القيمة التلقائية ln(3)/10 بإنشاء 100 نموذج تقريبًا. وإذا استخدمت قيمة أعلى، ستتمكّن من إنشاء نماذج أقلّ، ولكنّها ستكون ذات جودة أعلى. وإذا استخدمت قيمة أصغر، ستتمكّن من إنشاء المزيد من النماذج بجودة أقل.

الوسيطات

يمكن أن يكون float64_value أي عدد موجب بنقطة عائمة 64 بت أقل من ln(3)، أي حوالي 1.0986. القيمة التلقائية هي ln(3)/10.

automatic_input_scaling

(اختياري) عند TRUE، سيتم تطبيق min_max_scaling تلقائيًا على جميع أعمدة السمات الرقمية، كما لو تمّ تحديد أسماء الأعمدة صراحةً في خيار min_max_scaled_cols، باستثناء أيّ أعمدة تمّ تحديدها صراحةً في خيار standard_scaled_cols أو quantile_bucketized_cols.

الوسيطات

bool_value هو BOOL، والقيمة التلقائية هي TRUE.

min_max_scaled_cols

(اختياري) تُحوِّل كل عمود من أعمدة السمات المحدّدة التعبير_العددي إلى نطاق يتراوح بين 0 و1، مع وضع الحدّ الأقصى MIN وMAX في جميع الصفوف. يتم استخدام MIN وMAX نفسهما تلقائيًا في التوقّعات. إذا كانت بيانات التوقّعات خارج النطاق MIN، MAX، يتم حصرها بـ 0 أو 1.

الوسيطات

صفيف من string_value، حيث يكون كل string_value سلسلة تمثل اسم العمود الذي سيتم تحويله

standard_scaled_cols

(اختياري) توحيد أعمدة numerical_expression العناصر المحدّدة في جميع الصفوف يتم تلقائيًا استخدام STDDEV وMEAN المحسوبَين لتوحيد التعبير في التوقّعات.

الوسيطات

صفيف من string_value، حيث يكون كل string_value هو STRING يمثّل اسم العمود الذي سيتم تحويله.

quantile_bucketized_cols

تُجمِّع أعمدة السمات الرقمية المستمرة المحدّدة في STRING مع اسم الحزمة كقيمة استنادًا إلى الشرائح المئوية. ويتم استخدام الشرائح المئوية نفسها تلقائيًا في التنبؤ.

الوسيطات

صفيف من STRUCT(string_value AS col_name, int64_value AS num_buckets)، حيث تكون كل قيمة سلسلة هي STRING تمثّل اسم العمود الرقمي المستمر الذي سيتم تحويله، وكل int64_value هو عدد الحِزم لتقسيم القيم الرقمية إلى.

التحقّق من الصحة

  • يجب أن يتوفّر لكل يوم بيانات في النطاق الزمني المحدّد لهذا الطلب ميزانية خصوصية كافية، أي أكثر من EPSILON_PER_MODEL، وإلا سيتعذّر تنفيذ الطلب.
  • سيتم التحقّق من مَعلمات الضبط الاختيارية، في حال تحديدها، للنطاقات الموضّحة أعلاه.
  • يجب تحديد المَعلمة model_type المطلوبة فقط بشكل صريح.
  • يجب تسمية عمود واحد في مجموعة التدريب باسم "التصنيف". لا تتوفّر حاليًا التصنيفات المتعدّدة.
  • لا يمكن أن يحتوي عمود التصنيف على قيم NULL. إذا كان عمود التصنيف يحتوي على قيم فارغة، يتعذّر تنفيذ طلب البحث.
  • لا يمكن اشتقاق أيٍّ من أعمدة السمات من user_id.
  • يجب أن يمثّل كل صف مستخدمًا فريدًا واحدًا بالضبط. لا يمكن أن يمثّل صف واحد بيانات من أكثر من مستخدم واحد. يمكن أن يحدث ذلك مع عمليات دمج معيّنة، مثل CROSS JOIN.
  • لا يمكن أن يكون أي مستخدم في صفَّين منفصلَين.
  • لأسباب تتعلّق بالخصوصية، لا يمكن استخدام سوى الخيارات الموضّحة في قسم البنية. الخيارات الأخرى التي قد يتم العثور عليها في مستندات طلب البحث BQML CREATE MODEL غير متاحة حاليًا.

دوال التقييم

ML.EVALUATE

استخدِم الدالة ML.EVALUATE لتقييم مقاييس النموذج. يمكن استخدام الدالة ML.EVALUATE مع نماذج الانحدار الخطي أو الانحدار اللوجستي.

SELECT
  *
FROM ML.EVALUATE(MODEL `linear_model_test`);

ML.ROC_CURVE

استخدِم الدالة ML.ROC_CURVE لتقييم المقاييس المتعلّقة بالانحدار اللوجستي. لا يُقيّم ML.ROC_CURVE سوى نماذج الانحدار اللوجستي.

SELECT
  *
FROM ML.ROC_CURVE(MODEL `logistic_model_test`);

دوال التوقّعات

ML.PREDICT

يمكن استخدام الدالة ML.PREDICT لتوقّع النتائج باستخدام النموذج. تخضع النتائج التي يتم الحصول عليها باستخدام ML.PREDICT لفحوصات الخصوصية نفسها التي تخضع لها النتائج الأخرى في Ads Data Hub. مزيد من المعلومات حول عمليات التحقّق من الخصوصية

الانحدار الخطي

/* This example outputs the average value for labels that the model predicted */
SELECT
  AVG(predicted_label) AS average_predicted_label
FROM
  ML.PREDICT(MODEL `linear_model_test`, TABLE tmp.linear_training_set);

الانحدار اللوجستي

/* This example outputs the model's prediction and probabilities for said prediction over individual users. It groups by label and prediction, counting the number of users in each prediction */
SELECT
  label,
  predicted_label, /* one of the two input labels, depending on which label has the higher predicted probability */
  COUNT(*) AS num /* a tally of users */
FROM
  ML.PREDICT(MODEL `logistic_model_test`, TABLE tmp.logistic_training_set)
GROUP BY 1, 2;

دوالّ فحص النموذج والميزة

ML.TRAINING_INFO

تتيح لك الدالة ML.TRAINING_INFO الاطّلاع على معلومات عن تكرارات تدريب نموذج معيّن.

SELECT
  *
FROM ML.TRAINING_INFO(MODEL `logistic_model_test`);

ML.FEATURE_INFO

تسمح لك الدالة ML.FEATURE_INFO بالاطّلاع على معلومات عن ميزات الإدخال المستخدَمة لتدريب نموذج.

SELECT
  *
FROM ML.FEATURE_INFO(MODEL `logistic_model_test`);

ML.WEIGHTS

تتيح لك الدالة ML.WEIGHTS الاطّلاع على الأوزان الأساسية التي يستخدمها النموذج أثناء التوقّع.

SELECT
  *
FROM ML.WEIGHTS(MODEL `linear_model_test`);

أمثلة

إنشاء نموذج

تستخدِم جميع الأمثلة التالية natality نموذج الجدول لشرح كيفية إنشاء نموذج.

بيانات التدريب في الاختيار الداخلي (خطي)

يستخدِم المثال التالي وزن الولادة والجنس وعدد أسابيع الحمل وعمر الأم وعرق الأم للتنبؤ بوزن ولادة الطفل.

CREATE MODEL `natality_model`
OPTIONS
  (model_type='adh_linear_regression') AS
SELECT
  weight_pounds as label,
  is_male,
  gestation_weeks,
  mother_age,
  CAST(mother_race AS string) AS mother_race
FROM
  `bigquery-public-data.samples.natality`
WHERE
  weight_pounds IS NOT NULL

بيانات التدريب في الاختيار الداخلي (اللوجستي)

يستخدِم المثال التالي وزن الولادة والجنس والأسابيع الحملية وعمر الأم وعرق الأم للتنبؤ بجنس الطفل.

CREATE MODEL `natality_model`
OPTIONS
  (model_type='adh_logistic_regression') AS
SELECT
  weight_pounds,
  is_male as label,
  gestation_weeks,
  mother_age,
  CAST(mother_race AS string) AS mother_race
FROM
  `bigquery-public-data.samples.natality`
WHERE
  weight_pounds IS NOT NULL

تفعيل شرائح الجمهور

يمكنك إجراء توقّعات باستخدام نموذج انحدار خطي حالي، مع معرفة المَعلمات، بدون استخدام ML.PREDICT، حتى بدون الوصول إلى النموذج نفسه. للاطّلاع على كيفية إجراء ذلك، يمكنك الاطّلاع على نموذج الانحدار لتفعيل شرائح الجمهور codelab.