إعداد تدريب AutoML باستخدام Python
في هذا الدليل، تعرف على كيفية إعداد تعلم آلي تلقائي، AutoML، تدريب يتم تشغيله باستخدام Azure التعلم الآلي Python SDK باستخدام Azure التعلم الآلي ML التلقائي. يختار ML الآلي خوارزمية ومعلمات تشعبية لك ويولد نموذجا جاهزا للنشر. يوفر هذا الدليل تفاصيل حول الخيارات المختلفة التي يمكنك استخدامها لتكوين تجارب ML التلقائية.
للحصول على مثال من النهاية إلى النهاية ، راجع البرنامج التعليمي: AutoML- نموذج انحدار القطار.
إذا كنت تفضل تجربة بدون تعليمات برمجية، فيمكنك أيضا إعداد تدريب AutoML بدون تعليمات برمجية في استوديو Azure التعلم الآلي.
المتطلبات الأساسية
لهذه المقالة تحتاج ،
مساحة عمل Azure التعلم الآلي. لإنشاء مساحة العمل، راجع إنشاء مساحة عمل Azure التعلم الآلي.
Azure التعلم الآلي Python SDK مثبتة. لتثبيت SDK ، يمكنك أيضا ،
قم بإنشاء مثيل حوسبة، يقوم تلقائيا بتثبيت SDK ويتم تكوينه مسبقا لمهام سير عمل ML. راجع إنشاء مثيل حوسبة Azure التعلم الآلي وإدارته للحصول على مزيد من المعلومات.
قم بتثبيت الحزمة بنفسك
automl، والتي تتضمن التثبيت الافتراضي ل SDK.
هام
تتطلب أوامر Python في هذه المقالة أحدث
azureml-train-automlإصدار حزمة.- قم بتثبيت أحدث
azureml-train-automlحزمة على بيئتك المحلية. - للحصول على تفاصيل حول أحدث
azureml-train-automlحزمة، راجع ملاحظات الإصدار.
تحذير
بايثون 3.8 غير متوافق مع
automl.
اختر نوع التجربة
قبل أن تبدأ تجربتك ، يجب عليك تحديد نوع مشكلة التعلم الآلي التي تقوم بحلها. يدعم التعلم الآلي الآلي أنواع المهام من classification، regressionو forecasting. تعرف على المزيد حول أنواع المهام.
ملاحظة
دعم مهام رؤية الكمبيوتر: يتوفر تصنيف الصور (متعدد الفئات ومتعدد التسميات) واكتشاف الكائنات وتجزئة المثيل في المعاينة العامة. تعرف على المزيد حول مهام رؤية الكمبيوتر في ML التلقائي.
دعم مهام معالجة اللغات الطبيعية (NLP): يتوفر تصنيف الصور (متعدد الفئات ومتعدد التسميات) والتعرف على الكيانات المسماة في المعاينة العامة. تعرف على المزيد حول مهام البرمجة اللغوية العصبية في ML التلقائي.
يتم توفير إمكانات المعاينة هذه بدون اتفاقية على مستوى الخدمة. قد لا تكون بعض الميزات مدعومة أو قد تكون وظائفها مقيدة. لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
تستخدم التعليمة البرمجية التالية المعلمة الموجودة في المنشئ taskAutoMLConfig لتحديد نوع التجربة ك classification.
from azureml.train.automl import AutoMLConfig
# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")
مصدر البيانات وتنسيقها
يدعم التعلم الآلي التلقائي البيانات الموجودة على سطح المكتب المحلي أو في السحابة مثل Azure Blob Storage. يمكن قراءة البيانات في Pandas DataFrame أو Azure التعلم الآلي TabularDataset. تعرف على المزيد حول مجموعات البيانات.
متطلبات بيانات التدريب في التعلم الآلي:
- يجب أن تكون البيانات في شكل جدول.
- يجب أن تكون القيمة المراد التنبؤ بها ، العمود المستهدف ، في البيانات.
هام
لا تدعم تجارب التعلم الآلي الآلية التدريب باستخدام مجموعات البيانات التي تستخدم الوصول إلى البيانات المستند إلى الهوية.
بالنسبة للتجارب عن بعد، يجب أن تكون بيانات التدريب متاحة من الحوسبة عن بعد. يقبل ML التلقائي Azure التعلم الآلي TabularDatasets فقط عند العمل على حساب عن بعد.
تعرض مجموعات بيانات Azure التعلم الآلي الوظائف إلى:
- انقل البيانات بسهولة من الملفات الثابتة أو مصادر عناوين URL إلى مساحة العمل الخاصة بك.
- اجعل بياناتك متاحة لتدريب البرامج النصية عند التشغيل على موارد الحوسبة السحابية. راجع كيفية التدريب باستخدام مجموعات البيانات للحصول على مثال على استخدام
Datasetالفئة لتحميل البيانات إلى هدف الحوسبة عن بعد.
تقوم التعليمة البرمجية التالية بإنشاء TabularDataset من عنوان URL على ويب. راجع إنشاء مجموعة بيانات جدولية للحصول على أمثلة التعليمات البرمجية حول كيفية إنشاء مجموعات بيانات من مصادر أخرى مثل الملفات المحلية ومخازن البيانات.
from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)
بالنسبة لتجارب الحوسبة المحلية، نوصي بإطارات بيانات الباندا لأوقات معالجة أسرع.
import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"
بيانات التدريب والتحقق من الصحة والاختبار
يمكنك تحديد بيانات تدريب منفصلة ومجموعات بيانات التحقق من الصحة مباشرة في المنشئ AutoMLConfig . تعرف على المزيد حول كيفية تكوين بيانات التدريب والتحقق من الصحة والتحقق من الصحة المتقاطعة واختبار البيانات لتجارب AutoML.
إذا لم تحدد validation_data بشكل صريح معلمة أو n_cross_validation معلمة، فإن ML التلقائي يطبق التقنيات الافتراضية لتحديد كيفية إجراء التحقق من الصحة. يعتمد هذا التحديد على عدد الصفوف في مجموعة البيانات المعينة للمعلمة training_data .
| حجم بيانات التدريب | تقنية التحقق من الصحة |
|---|---|
| أكبر من 20,000 صف | يتم تطبيق تقسيم بيانات القطار/التحقق من الصحة. الإعداد الافتراضي هو أخذ 10٪ من مجموعة بيانات التدريب الأولية كمجموعة التحقق من الصحة. في المقابل ، يتم استخدام مجموعة التحقق هذه لحساب المقاييس. |
| أصغر من 20,000 صف | يتم تطبيق نهج التحقق المتقاطع. يعتمد العدد الافتراضي للطيات على عدد الصفوف. إذا كانت مجموعة البيانات أقل من 1000 صف، استخدام 10 أضعاف. إذا كانت الصفوف بين 1000 و 20000 ، استخدام ثلاثة أضعاف. |
تلميح
يمكنك تحميل بيانات الاختبار (المعاينة) لتقييم النماذج التي تم إنشاؤها آليا من أجلك. هذه الميزات هي قدرات معاينة تجريبية ، وقد تتغير في أي وقت. ستتعرف على كيفية:
- تمرير في بيانات الاختبار إلى كائن AutoMLConfig الخاص بك.
- اختبر نماذج ML التلقائية التي تم إنشاؤها لتجربتك.
إذا كنت تفضل تجربة بدون تعليمات برمجية، فراجع الخطوة 12 في إعداد AutoML باستخدام واجهة مستخدم الاستوديو
البيانات الكبيرة
يدعم التعلم الآلي الآلي عددا محدودا من الخوارزميات للتدريب على البيانات الكبيرة التي يمكنها بنجاح بناء نماذج للبيانات الضخمة على الأجهزة الافتراضية الصغيرة. تعتمد الاستدلالات الآلية للتعلم الآلي على خصائص مثل حجم البيانات وحجم ذاكرة الجهاز الظاهري ومهلة التجربة وإعدادات التنفيذ لتحديد ما إذا كان ينبغي تطبيق خوارزميات البيانات الكبيرة هذه أم لا. تعرف على المزيد حول الطرز المدعومة في ML التلقائي.
للتصنيف ، مصنف الإدراك الحسي المتوسط ومصنفSVM الخطي ؛ حيث يحتوي مصنف SVM الخطي على كل من إصدارات البيانات الكبيرة والصغيرة.
إذا كنت تريد تجاوز هذه الاستدلالات، فقم بتطبيق الإعدادات التالية:
| المهمة | الإعداد | ملاحظات |
|---|---|---|
| حظر خوارزميات تدفق البيانات | blocked_models في الكائن الخاص بك AutoMLConfig وقم بإدراج النموذج (النماذج) التي لا تريد استخدامها. |
يؤدي إما إلى فشل التشغيل أو وقت التشغيل على المدى الطويل |
| استخدام خوارزميات تدفق البيانات | allowed_models في الكائن الخاص بك AutoMLConfig وقم بإدراج النموذج (النماذج) الذي تريد استخدامه. |
|
| استخدام خوارزميات تدفق البيانات (تجارب واجهة مستخدم الاستوديو) |
حظر جميع الطرز باستثناء خوارزميات البيانات الضخمة التي تريد استخدامها. |
الحوسبة لتشغيل التجربة
بعد ذلك ، حدد المكان الذي سيتم فيه تدريب النموذج. يمكن تشغيل تجربة تدريب ML التلقائية على خيارات الحوسبة التالية. تعرف على إيجابيات وسلبيات خيارات الحوسبة المحلية والبعيدة .
جهازك المحلي مثل سطح المكتب المحلي أو الكمبيوتر المحمول - بشكل عام عندما يكون لديك مجموعة بيانات صغيرة وما زلت في مرحلة الاستكشاف. راجع دفتر الملاحظات هذا للحصول على مثال حوسبة محلي.
جهاز بعيد في السحابة - Azure التعلم الآلي Managed Compute هي خدمة مدارة تمكن من القدرة على تدريب نماذج التعلم الآلي على مجموعات من أجهزة Azure الظاهرية. يتم دعم مثيل الحوسبة أيضا كهدف حوسبة.
راجع دفتر الملاحظات هذا للحصول على مثال بعيد باستخدام Azure التعلم الآلي الحوسبة المدارة.
A Azure Databricks cluster في اشتراك Azure الخاص بك. يمكنك العثور على مزيد من التفاصيل في إعداد مجموعة Azure Databricks ل ML التلقائي. راجع موقع GitHub هذا للحصول على أمثلة لدفاتر الملاحظات التي تحتوي على Azure Databricks.
ضبط إعدادات التجربة
هناك العديد من الخيارات التي يمكنك استخدامها لتكوين تجربة التعلم الآلي التلقائية. يتم تعيين هذه المعلمات عن طريق إنشاء كائن كائن AutoMLConfig . راجع فئة AutoMLConfig للحصول على قائمة كاملة بالمعلمات.
المثال التالي مخصص لمهمة تصنيف. تستخدم التجربة AUC الموزونة كمقياس أساسي ولديها مهلة تجربة محددة إلى 30 دقيقة و 2 طيات التحقق من الصحة المتقاطعة.
automl_classifier=AutoMLConfig(task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
blocked_models=['XGBoostClassifier'],
training_data=train_data,
label_column_name=label,
n_cross_validations=2)
يمكنك أيضا تكوين مهام التنبؤ، الأمر الذي يتطلب إعدادا إضافيا. راجع مقالة إعداد AutoML للتنبؤ بالسلاسل الزمنية للحصول على مزيد من التفاصيل.
time_series_settings = {
'time_column_name': time_column_name,
'time_series_id_column_names': time_series_id_column_names,
'forecast_horizon': n_test_periods
}
automl_config = AutoMLConfig(
task = 'forecasting',
debug_log='automl_oj_sales_errors.log',
primary_metric='normalized_root_mean_squared_error',
experiment_timeout_minutes=20,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
path=project_folder,
verbosity=logging.INFO,
**time_series_settings
)
النماذج المدعومة
يجرب التعلم الآلي الآلي نماذج وخوارزميات مختلفة أثناء عملية الأتمتة والضبط. كمستخدم ، ليست هناك حاجة لتحديد الخوارزمية.
تحدد قيم المعلمات الثلاث المختلفة task قائمة الخوارزميات أو النماذج المراد تطبيقها. استخدم المعلمات allowed_models أو المعلمات لتعديل التكرارات بشكل أكبر مع النماذج المتاحة لتضمينها أو blocked_models استبعادها.
يلخص الجدول التالي النماذج المعتمدة حسب نوع المهمة.
ملاحظة
إذا كنت تخطط لتصدير النماذج الآلية التي أنشأتها ML إلى نموذج ONNX ، فلن تتمكن سوى تلك الخوارزميات المشار إليها بعلامة * (علامة نجمية) من تحويلها إلى تنسيق ONNX. تعرف على المزيد حول تحويل الطرز إلى ONNX.
لاحظ أيضا أن ONNX يدعم مهام التصنيف والانحدار فقط في الوقت الحالي.
| التصنيف | الانحدار | التنبؤ بالسلاسل الزمنية |
|---|---|---|
| الانحدار اللوجستي* | شبكة مرنة* | أوتو أريما |
| ضوء GBM* | ضوء GBM* | نبي |
| تعزيز التدرج* | تعزيز التدرج* | الشبكة المرنة |
| شجرة القرار* | شجرة القرار* | ضوء GBM |
| K أقرب الجيران* | K أقرب الجيران* | تعزيز التدرج |
| SVC خطي* | لارس لاسو* | شجرة القرار |
| دعم تصنيف ناقلات (SVC)* | هبوط التدرج العشوائي (SGD)* | أريماكس |
| غابة عشوائية* | الغابة عشوائية | LARS Lasso |
| أشجار عشوائية للغاية* | أشجار عشوائية للغاية* | هبوط التدرج العشوائي (SGD) |
| إكسغبوست* | إكسغبوست* | الغابة عشوائية |
| متوسط مصنف الإدراك الحسي | انحدار التدرج عبر الإنترنت | إكسغبوست |
| ساذج بايز* | الانحدار الخطي السريع | التوقعاتTCN |
| هبوط التدرج العشوائي (SGD)* | ساذج | |
| مصنف SVM الخطي* | موسمي ساذج | |
| المتوسط | ||
| المتوسط الموسمي | ||
| التنعيم الأسي |
المقياس الأساسي
تحدد المعلمة المقياس الذي سيتم استخدامه أثناء التدريب على النموذج من أجل التحسين primary_metric . يتم تحديد المقاييس المتاحة التي يمكنك تحديدها حسب نوع المهمة التي تختارها.
يعتمد اختيار مقياس أساسي ل ML الآلي لتحسينه على العديد من العوامل. نوصي بأن يكون تفكيرك الأساسي هو اختيار مقياس يمثل احتياجات عملك على أفضل وجه. ثم ضع في اعتبارك ما إذا كان المقياس مناسبا لملف تعريف مجموعة البيانات (حجم البيانات ونطاقها وتوزيع الفئة وما إلى ذلك). تلخص الأقسام التالية المقاييس الأساسية الموصى بها استنادا إلى نوع المهمة وسيناريو العمل.
تعرف على التعاريف المحددة لهذه المقاييس في فهم نتائج التعلم الآلي التلقائي.
مقاييس سيناريوهات التصنيف
المقاييس المعتمدة على العتبة، مثل accuracy، ، recall_score_weightednorm_macro_recallprecision_score_weighted وقد لا يتم تحسينها أيضا لمجموعات البيانات الصغيرة أو التي تحتوي على انحراف كبير جدا في الفئة (اختلال توازن الفئة) أو عندما تكون قيمة المقياس المتوقعة قريبة جدا من 0.0 أو 1.0. في هذه الحالات ، AUC_weighted يمكن أن يكون خيارا أفضل للمقياس الأساسي. بعد اكتمال التعلم الآلي الآلي ، يمكنك اختيار النموذج الفائز بناء على المقياس الأنسب لاحتياجات عملك.
| متري | مثال على حالة (حالات) الاستخدام |
|---|---|
accuracy |
تصنيف الصور، تحليل المشاعر، التنبؤ ب Churn |
AUC_weighted |
الكشف عن الاحتيال ، تصنيف الصور ، اكتشاف الشذوذ / اكتشاف البريد العشوائي |
average_precision_score_weighted |
تحليل التوجه |
norm_macro_recall |
التنبؤ بالزبد |
precision_score_weighted |
مقاييس سيناريوهات الانحدار
r2_score، normalized_mean_absolute_error وتحاول normalized_root_mean_squared_error جميعها تقليل أخطاء التنبؤ. r2_score وكلاهما normalized_root_mean_squared_error يقلل من متوسط الأخطاء المربعة بينما normalized_mean_absolute_error يقلل من متوسط القيمة المطلقة للأخطاء. تعالج القيمة المطلقة الأخطاء بجميع المقادير على حد سواء وسيكون للأخطاء المربعة عقوبة أكبر بكثير للأخطاء ذات القيم المطلقة الأكبر. اعتمادا على ما إذا كان ينبغي معاقبة الأخطاء الأكبر أم لا ، يمكن للمرء أن يختار تحسين الخطأ التربيعي أو الخطأ المطلق.
الفرق الرئيسي بين r2_score و normalized_root_mean_squared_error هو الطريقة التي يتم بها تطبيعها ومعانيها. normalized_root_mean_squared_error هو الجذر متوسط الخطأ التربيعي الذي تم تطبيعه حسب النطاق ويمكن تفسيره على أنه متوسط حجم الخطأ للتنبؤ. r2_score هو متوسط الخطأ التربيعي الذي تم تطبيعه بواسطة تقدير تباين البيانات. إنها نسبة التباين التي يمكن التقاطها بواسطة النموذج.
ملاحظة
r2_score وتتصرف normalized_root_mean_squared_error أيضا بشكل مشابه للمقاييس الأولية. إذا تم تطبيق مجموعة تحقق ثابتة، فإن هذين المقياسين يعملان على تحسين نفس الهدف، ويعني الخطأ التربيعي، وسيتم تحسينهما بواسطة نفس النموذج. عندما تتوفر مجموعة تدريب فقط ويتم تطبيق التحقق المتبادل ، فإنها ستكون مختلفة قليلا حيث يتم إصلاح التطبيع الخاص بها كنطاق مجموعة التدريب ، ولكن التطبيع الخاص r2_score به سيختلف لكل طية لأنه التباين normalized_root_mean_squared_error لكل طي.
إذا كانت الرتبة ، بدلا من القيمة الدقيقة ذات أهمية ، spearman_correlation يمكن أن تكون خيارا أفضل لأنها تقيس ارتباط الرتبة بين القيم الحقيقية والتنبؤات.
ومع ذلك، لا توجد حاليا مقاييس أولية للانحدار تعالج الفرق النسبي. كل ذلك r2_score، normalized_mean_absolute_errorوتعامل normalized_root_mean_squared_error مع خطأ تنبؤ بقيمة 20 ألف دولار بنفس الطريقة بالنسبة للعامل الذي يتقاضى راتبا قدره 30 ألف دولار كعامل يجني 20 مليون دولار ، إذا كانت نقطتا البيانات هاتان تنتميان إلى نفس مجموعة البيانات للانحدار ، أو نفس السلسلة الزمنية المحددة بواسطة معرف السلسلة الزمنية. بينما في الواقع ، فإن التنبؤ ب 20 ألف دولار فقط من راتب 20 مليون دولار قريب جدا (فرق نسبي صغير بنسبة 0.1٪) ، في حين أن 20 ألف دولار من 30 ألف دولار ليست قريبة (فرق نسبي كبير بنسبة 67٪). لمعالجة مسألة الاختلاف النسبي ، يمكن للمرء تدريب نموذج باستخدام المقاييس الأولية المتاحة ، ثم تحديد النموذج مع الأفضل mean_absolute_percentage_error أو root_mean_squared_log_error.
| متري | مثال على حالة (حالات) الاستخدام |
|---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
التنبؤ بالسعر (المنزل / المنتج / البقشيش) ، التنبؤ بنقاط المراجعة |
r2_score |
تأخير شركة الطيران ، تقدير الراتب ، وقت حل الأخطاء |
normalized_mean_absolute_error |
مقاييس سيناريوهات التنبؤ بالسلاسل الزمنية
وتتشابه التوصيات مع التوصيات التي لوحظت فيما يتعلق بسيناريوهات الانحدار.
| متري | مثال على حالة (حالات) الاستخدام |
|---|---|
normalized_root_mean_squared_error |
التنبؤ بالأسعار (التنبؤ)، تحسين المخزون، التنبؤ بالطلب |
r2_score |
التنبؤ بالأسعار (التنبؤ)، تحسين المخزون، التنبؤ بالطلب |
normalized_mean_absolute_error |
إنجاز البيانات
في كل تجربة ML تلقائية، يتم تحجيم بياناتك وتطبيعها تلقائيا لمساعدة خوارزميات معينة حساسة للميزات الموجودة على نطاقات مختلفة. ويشار إلى هذا التحجيم والتطبيع باسم التجديد. راجع Featurization في AutoML لمزيد من التفاصيل وأمثلة التعليمات البرمجية.
ملاحظة
تصبح خطوات إنجاز التعلم الآلي الآلي (تطبيع الميزات ، ومعالجة البيانات المفقودة ، وتحويل النص إلى رقمي ، وما إلى ذلك) جزءا من النموذج الأساسي. عند استخدام نموذج التنبؤات، يتم تطبيق نفس خطوات الإنجاز المطبقة أثناء التدريب على بيانات الإدخال الخاصة بك تلقائيا.
عند تكوين تجاربك في الكائن الخاص بك AutoMLConfig ، يمكنك تمكين/تعطيل الإعداد featurization. يوضح الجدول التالي الإعدادات المقبولة للتنفيذ في كائن AutoMLConfig.
| تكوين الإنجاز | الوصف |
|---|---|
"featurization": 'auto' |
يشير إلى أنه كجزء من المعالجة المسبقة، يتم تنفيذ حواجز حماية البيانات وخطوات الإنجاز تلقائيا. الإعداد الافتراضي. |
"featurization": 'off' |
يشير إلى أن خطوة التخصيب لا ينبغي أن تتم تلقائيا. |
"featurization": 'FeaturizationConfig' |
يشير إلى أنه يجب استخدام خطوة التأبين المخصصة. تعلم كيفية تخصيص التجميل. |
تكوين الفرقة
يتم تمكين نماذج المجموعة بشكل افتراضي، وتظهر كتكرارات التشغيل النهائية في تشغيل AutoML. حاليا يتم دعم VotingEnsemble و StackEnsemble.
يطبق التصويت الناعم ، والذي يستخدم المتوسطات المرجحة. يستخدم تنفيذ التراص تطبيقا من طبقتين ، حيث تحتوي الطبقة الأولى على نفس نماذج مجموعة التصويت ، ويتم استخدام نموذج الطبقة الثانية للعثور على المزيج الأمثل للنماذج من الطبقة الأولى.
إذا كنت تستخدم نماذج ONNX ، أو تم تمكين إمكانية شرح النموذج ، تعطيل التراص ويتم استخدام التصويت فقط.
يمكن تعطيل تدريب الفرقة باستخدام المعلمات المنطقية enable_voting_ensembleenable_stack_ensemble .
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=data_train,
label_column_name=label,
n_cross_validations=5,
enable_voting_ensemble=False,
enable_stack_ensemble=False
)
لتغيير سلوك المجموعة الافتراضية، هناك العديد من الوسيطات الافتراضية التي يمكن توفيرها كما هو الحال kwargs في كائن AutoMLConfig .
هام
المعلمات التالية ليست معلمات صريحة لفئة AutoMLConfig.
ensemble_download_models_timeout_secأثناء إنشاء طرازي VotingEnsembleوStackEnsemble ، يتم تنزيل العديد من النماذج المجهزة من عمليات التشغيل الفرعية السابقة.: إذا واجهت هذا الخطأ:AutoMLEnsembleException: Could not find any models for running ensembling، فقد تحتاج إلى توفير مزيد من الوقت لتنزيل النماذج. القيمة الافتراضية هي 300 ثانية لتنزيل هذه الطرز بالتوازي ولا يوجد حد أقصى للمهلة. قم بتكوين هذه المعلمة بقيمة أعلى من 300 ثانية، إذا كانت هناك حاجة إلى مزيد من الوقت.ملاحظة
إذا تم الوصول إلى المهلة وكانت هناك نماذج تم تنزيلها ، فستستمر المجموعة في أكبر عدد ممكن من الطرز التي قامت بتنزيلها. ليس مطلوبا تنزيل جميع الطرز للانتهاء من هذه المهلة. تنطبق المعلمات التالية فقط على نماذج StackEnsemble :
stack_meta_learner_typeالمتعلم الفوقي هو نموذج مدرب على مخرجات النماذج الفردية غير المتجانسة.: المتعلمون الوصفيون الافتراضيون همLogisticRegressionلمهام التصنيف (أو إذا تم تمكين التحقق المتبادل) ولمهامElasticNetالانحدار/التنبؤ (أوLogisticRegressionCVElasticNetCVإذا تم تمكين التحقق المتبادل). يمكن أن تكون هذه المعلمة إحدى السلاسل التالية:LogisticRegressionأو أو , , ,ElasticNet, ,LightGBMRegressorLightGBMClassifierElasticNetCVأو .LogisticRegressionCVLinearRegressionstack_meta_learner_train_percentageيحدد نسبة مجموعة التدريب (عند اختيار التدريب ونوع التحقق من الصحة) التي سيتم حجزها لتدريب المتعلم الفوقي.: القيمة الافتراضية هي 0.2.stack_meta_learner_kwargsمعلمات اختيارية للتمرير إلى بادئ المتعلم الوصفي.: تعكس هذه المعلمات وأنواع المعلمات المعلمات وأنواع المعلمات من منشئ النموذج المقابل ، ويتم توجيهها إلى منشئ النموذج.
تعرض التعليمة البرمجية التالية مثالا على تحديد سلوك مجموعة مخصصة في AutoMLConfig كائن.
ensemble_settings = {
"ensemble_download_models_timeout_sec": 600
"stack_meta_learner_type": "LogisticRegressionCV",
"stack_meta_learner_train_percentage": 0.3,
"stack_meta_learner_kwargs": {
"refit": True,
"fit_intercept": False,
"class_weight": "balanced",
"multi_class": "auto",
"n_jobs": -1
}
}
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
**ensemble_settings
)
معايير الخروج
هناك بعض الخيارات التي يمكنك تحديدها في AutoMLConfig لإنهاء تجربتك.
| المعايير | الوصف |
|---|---|
| لا توجد معايير | إذا لم تحدد أي معلمات خروج، فستستمر التجربة حتى لا يتم إحراز أي تقدم إضافي في مقياسك الأساسي. |
| بعد فترة طويلة من الزمن | استخدمه experiment_timeout_minutes في إعداداتك لتحديد المدة التي يجب أن تستمر فيها تجربتك في الدقائق المحددة. للمساعدة في تجنب فشل مهلة التجربة، هناك ما لا يقل عن 15 دقيقة، أو 60 دقيقة إذا تجاوز حجم الصف حسب حجم العمود 10 ملايين. |
| تم الوصول إلى درجة | يكمل الاستخدام experiment_exit_score التجربة بعد الوصول إلى درجة قياس أساسية محددة. |
قم بإجراء التجربة
تحذير
إذا أجريت تجربة باستخدام إعدادات التهيئة نفسها والمقياس الأساسي عدة مرات، فمن المحتمل أن ترى تباينا في كل نتيجة للمقاييس النهائية للتجارب والنماذج التي تم إنشاؤها. تتميز الخوارزميات التي يستخدمها ML الآلي بعشوائية متأصلة يمكن أن تسبب تباينا طفيفا في النماذج الناتجة عن التجربة ودرجة المقاييس النهائية للنموذج الموصى به ، مثل الدقة. من المحتمل أن ترى أيضا نتائج بنفس اسم الطراز، ولكن مع استخدام معلمات تشعبية مختلفة.
بالنسبة إلى ML التلقائي، يمكنك إنشاء Experiment كائن، وهو كائن مسمى في كائن Workspace يستخدم لتشغيل التجارب.
from azureml.core.experiment import Experiment
ws = Workspace.from_config()
# Choose a name for the experiment and specify the project folder.
experiment_name = 'Tutorial-automl'
project_folder = './sample_projects/automl-classification'
experiment = Experiment(ws, experiment_name)
أرسل التجربة لتشغيل نموذج وإنشائه. مرر إلى AutoMLConfigsubmit الطريقة لإنشاء النموذج.
run = experiment.submit(automl_config, show_output=True)
ملاحظة
يتم تثبيت التبعيات أولا على جهاز جديد. قد يستغرق الأمر ما يصل إلى 10 دقائق قبل عرض الإخراج.
يؤدي الإعداد إلى True عرض الإخراج show_output على وحدة التحكم.
تشغيل عدة تطفل على مجموعات
يمكن إجراء عمليات التشغيل الفرعية لتجربة ML التلقائية على مجموعة تقوم بالفعل بتشغيل تجربة أخرى. ومع ذلك، يعتمد التوقيت على عدد العقد التي تحتوي عليها المجموعة، وما إذا كانت هذه العقد متاحة لتشغيل تجربة مختلفة.
تعمل كل عقدة في المجموعة كجهاز ظاهري فردي (VM) يمكنه إنجاز تشغيل تدريب واحد ؛ بالنسبة إلى ML الآلي ، هذا يعني تشغيل الطفل. إذا كانت جميع العقد مشغولة، وضع التجربة الجديدة في قائمة الانتظار. ولكن إذا كانت هناك عقد مجانية ، فستقوم التجربة الجديدة بتشغيل ML التابع الآلي بالتوازي في العقد / الأجهزة الظاهرية المتاحة.
للمساعدة في إدارة عمليات التشغيل الفرعية ومتى يمكن تنفيذها، نوصيك بإنشاء مجموعة مخصصة لكل تجربة، ومطابقة عدد max_concurrent_iterations تجاربك مع عدد العقد في المجموعة. بهذه الطريقة، يمكنك استخدام كافة عقد الكتلة في نفس الوقت مع عدد عمليات التشغيل/التكرار الفرعية المتزامنة التي تريدها.
تكوين في الكائن max_concurrent_iterations الخاص بك AutoMLConfig . إذا لم يتم تكوينه، فلن يسمح افتراضيا إلا بتشغيل / تكرار فرعي متزامن واحد فقط لكل تجربة.
في حالة مثيل الحوسبة ، max_concurrent_iterations يمكن تعيينه ليكون نفس عدد النوى على VM مثيل الحوسبة.
استكشاف النماذج والمقاييس
يوفر لك التعلم الآلي الآلي خيارات لمراقبة وتقييم نتائج التدريب الخاصة بك.
يمكنك عرض نتائج التدريب في عنصر واجهة مستخدم أو مضمنة إذا كنت تستخدم دفتر ملاحظات. راجع مراقبة عمليات تشغيل التعلم الآلي التلقائي لمزيد من التفاصيل.
للحصول على تعريفات وأمثلة لمخططات الأداء والمقاييس المتوفرة لكل تشغيل، راجع تقييم نتائج تجربة التعلم الآلي التلقائي.
للحصول على ملخص الإنجاز وفهم الميزات التي تمت إضافتها إلى نموذج معين، راجع شفافية التجميل.
يمكنك عرض المعلمات التشعبية وتقنيات التحجيم والتطبيع والخوارزمية المطبقة على تشغيل ML تلقائي محدد باستخدام حل التعليمات البرمجية المخصص ، print_model().
تلميح
يتيح لك ML الآلي أيضا عرض رمز تدريب النموذج الذي تم إنشاؤه للنماذج المدربة على Auto ML. هذه الوظيفة قيد المعاينة العامة ويمكن أن تتغير في أي وقت.
مراقبة عمليات التعلم الآلي الآلي
لعمليات تشغيل ML التلقائية، للوصول إلى المخططات من تشغيل سابق، استبدلها <<experiment_name>> باسم التجربة المناسب:
from azureml.widgets import RunDetails
from azureml.core.run import Run
experiment = Experiment (workspace, <<experiment_name>>)
run_id = 'autoML_my_runID' #replace with run_ID
run = Run(experiment, run_id)
RunDetails(run).show()

نماذج الاختبار (المعاينة)
هام
يعد اختبار نماذجك باستخدام مجموعة بيانات اختبار لتقييم النماذج الآلية التي تم إنشاؤها بواسطة ML ميزة معاينة. هذه الإمكانية هي ميزة معاينة تجريبية ، وقد تتغير في أي وقت.
تحذير
لا تتوفر هذه الميزة لسيناريوهات التعلم الآلي التلقائية التالية
يؤدي تمرير المعلمات test_data أو test_size المعلمات إلى AutoMLConfigتشغيل اختبار عن بعد تلقائيا يستخدم بيانات الاختبار المقدمة لتقييم أفضل نموذج يوصي به ML الآلي عند الانتهاء من التجربة. يتم إجراء هذا الاختبار عن بعد في نهاية التجربة ، بمجرد تحديد أفضل نموذج. تعرف على كيفية اجتياز بيانات الاختبار في ملف AutoMLConfig.
الحصول على نتائج تشغيل الاختبار
يمكنك الحصول على التنبؤات والمقاييس من الاختبار عن بعد الذي يتم تشغيله من استوديو Azure التعلم الآلي أو باستخدام التعليمة البرمجية التالية.
best_run, fitted_model = remote_run.get_output()
test_run = next(best_run.get_children(type='automl.model_test'))
test_run.wait_for_completion(show_output=False, wait_post_processing=True)
# Get test metrics
test_run_metrics = test_run.get_metrics()
for name, value in test_run_metrics.items():
print(f"{name}: {value}")
# Get test predictions as a Dataset
test_run_details = test_run.get_details()
dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
predictions_df = test_run_predictions.to_pandas_dataframe()
# Alternatively, the test predictions can be retrieved via the run outputs.
test_run.download_file("predictions/predictions.csv")
predictions_df = pd.read_csv("predictions.csv")
يقوم تشغيل اختبار النموذج بإنشاء ملف predictions.csv المخزن في مخزن البيانات الافتراضي الذي تم إنشاؤه باستخدام مساحة العمل. مخزن البيانات هذا مرئي لجميع المستخدمين الذين لديهم نفس الاشتراك. لا يوصى بتشغيل الاختبار للسيناريوهات إذا كانت أي من المعلومات المستخدمة أو التي تم إنشاؤها بواسطة تشغيل الاختبار تحتاج إلى أن تظل خاصة.
اختبار نموذج ML الآلي الحالي
لاختبار نماذج ML التلقائية الحالية الأخرى التي تم إنشاؤها أو تشغيلها بشكل أفضل أو تشغيلها فرعيا، استخدمها ModelProxy() لاختبار نموذج بعد اكتمال تشغيل AutoML الرئيسي. ModelProxy() ترجع بالفعل التنبؤات والمقاييس ولا تتطلب مزيدا من المعالجة لاسترداد المخرجات.
ملاحظة
ModelProxy هي فئة معاينة تجريبية ، وقد تتغير في أي وقت.
توضح التعليمة البرمجية التالية كيفية اختبار نموذج من أي تشغيل باستخدام الأسلوب ModelProxy.test() . في طريقة test() ، لديك خيار تحديد ما إذا كنت تريد فقط رؤية تنبؤات تشغيل الاختبار باستخدام المعلمة include_predictions_only .
from azureml.train.automl.model_proxy import ModelProxy
model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
)
تسجيل النماذج ونشرها
بعد اختبار نموذج وتأكيد رغبتك في استخدامه في الإنتاج ، يمكنك تسجيله للاستخدام لاحقا و
لتسجيل نموذج من تشغيل ML تلقائي ، استخدم الطريقة register_model() .
best_run = run.get_best_child()
print(fitted_model.steps)
model_name = best_run.properties['model_name']
description = 'AutoML forecast example'
tags = None
model = run.register_model(model_name = model_name,
description = description,
tags = tags)
للحصول على تفاصيل حول كيفية إنشاء تكوين نشر ونشر نموذج مسجل على خدمة ويب، راجع كيفية نشر نموذج ومكانه.
تلميح
بالنسبة للطرز المسجلة، يتوفر النشر بنقرة واحدة عبر استوديو Azure التعلم الآلي. تعرف على كيفية نشر النماذج المسجلة من الاستوديو.
قابلية تفسير النموذج
تتيح لك قابلية تفسير النموذج فهم سبب قيام نماذجك بإجراء تنبؤات ، وقيم أهمية الميزة الأساسية. تتضمن SDK حزم مختلفة لتمكين ميزات قابلية تفسير النماذج ، سواء في وقت التدريب أو الاستدلال ، للنماذج المحلية والمنشورة.
تعرف على كيفية تمكين ميزات قابلية الترجمة الفورية على وجه التحديد ضمن تجارب التعلم الآلي الآلية.
للحصول على معلومات عامة حول كيفية تمكين تفسيرات النموذج وأهمية الميزات في مجالات أخرى من SDK خارج التعلم الآلي الآلي ، راجع مقالة المفهوم حول قابلية التفسير .
ملاحظة
نموذج ForecastTCN غير معتمد حاليا من قبل عميل التفسير. لن يقوم هذا النموذج بإرجاع لوحة معلومات شرح إذا تم إرجاعه كأفضل نموذج، ولا يدعم عمليات تشغيل الشرح عند الطلب.
الخطوات التالية
تعرف على المزيد حول كيفية نشر نموذج ومكانه.
تعرف على المزيد حول كيفية تدريب نموذج الانحدار باستخدام التعلم الآلي التلقائي.