Evalml: خطأ عند استخدام الاستدعاء كهدف أولي تلقائيًا

تم إنشاؤها على ١٢ مارس ٢٠٢١  ·  4تعليقات  ·  مصدر: alteryx/evalml

أعزائي،
في مشكلة التصنيف الثنائي ، حيث تكون تكلفة FN أعلى من تكلفة FP ، عند محاولة استخدام الاسترجاع كهدف ، أحصل على الخطأ التالي:

ValueError: الاستدعاء غير مسموح به في AutoML! استخدم Evalml.objectives.utils.get_core_objective_names () للحصول على جميع أسماء الأهداف المسموح بها في automl.

لقد قمت بالاطلاع على الأسماء المسموح بها ويمكنني أن أرى أن التذكر موجود هناك

أي اقتراحات؟

شكرا كثيرا مسبقا
نيكوس

التعليق الأكثر فائدة

مرحبا @ npapan69 !

لا نشجع استخدام الاستدعاء كهدف أساسي في البحث التلقائي لأن خط الأنابيب التافه الذي يتنبأ دائمًا بالفئة الإيجابية سينتج عادةً درجة استدعاء مثالية. لذلك يتم تحفيز automl للعثور على خطوط أنابيب تافهة. راجع العدد رقم 476. هذا هو السبب في أنها ليست في قائمة الأهداف الأساسية لدينا ، كما يقول الخطأ:

image

ومع ذلك ، لا يزال بإمكانك استخدام الاستدعاء كهدف تلقائي! ما عليك سوى تمريرها كمثيل بدلاً من سلسلة:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

انتاج:

image

ال 4 كومينتر

مرحبا @ npapan69 !

لا نشجع استخدام الاستدعاء كهدف أساسي في البحث التلقائي لأن خط الأنابيب التافه الذي يتنبأ دائمًا بالفئة الإيجابية سينتج عادةً درجة استدعاء مثالية. لذلك يتم تحفيز automl للعثور على خطوط أنابيب تافهة. راجع العدد رقم 476. هذا هو السبب في أنها ليست في قائمة الأهداف الأساسية لدينا ، كما يقول الخطأ:

image

ومع ذلك ، لا يزال بإمكانك استخدام الاستدعاء كهدف تلقائي! ما عليك سوى تمريرها كمثيل بدلاً من سلسلة:

from evalml.demos import load_breast_cancer
from evalml.automl import AutoMLSearch
from evalml.objectives import Recall
X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", objective=Recall())

automl.search()

انتاج:

image

شكرا freddyaboulton !

كان لدي اقتراح آخر: إذا كنت تريد أن تعرف automl أن تكلفة الإيجابيات الخاطئة في مشكلتك يجب أن تكون أعلى من تكلفة السلبيات الخاطئة ، يمكنك محاولة استخدام الهدف CostBenefitMatrix :

import evalml
obj = evalml.objectives.CostBenefitMatrix(true_positive=1.0, true_negative=1.0, false_positive=10.0, false_negative=1.0)
automl = AutoMLSearch(X, y, problem_type="binary", objective=obj)

شكرا لتقديم القضية @ npapan69 ! أنا أغلقه منذ أن freddyaboulton . يُرجى التواصل إذا كانت لديك أي أسئلة إضافية.

شكرا لك تايلر نيكولاس بابانيكولاو ، دكتوراه ، رئيس مجموعة التصوير الإكلينيكي الحاسوبي Brasília، Doca de Pedrouços1400-038 لشبونة ، البرتغال الخط الأرضي: ++ 351210480073 الهاتف المحمول: ++ 351969323757 ، الخميس ، 18 مارس 2021 الساعة 5:40 مساءً ، Tyler @ . * > كتب:
شكرا لتقديم القضية @ npapan69 ! أنا أغلقه منذ أن freddyaboulton . يُرجى التواصل إذا كانت لديك أي أسئلة إضافية.

- لقد تلقيت هذا لأنه تم ذكرك. قم بالرد على هذا البريد الإلكتروني مباشرةً ، أو قم بعرضه على GitHub ، أو قم بإلغاء الاشتراك.
[
{
@ . ":" http://schema.org* @ . ": "رسالة الكترونية"،
"إجراء محتمل": {
@ . ":" ViewAction "،"الهدف": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198" ،"url": " https://github.com/alteryx/evalml/issues/1973#issuecomment -802154198"،"الاسم": "عرض المشكلة"} ،"الوصف": "عرض هذه المشكلة على GitHub"،"الناشر": {. * ":" Organization "،
"الاسم": "جيثب"،
"url": " https://github.com "
}
}
]

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات