Evalml: [مناقشة] هل AutoClassifer.fit () و AutoRegressor.fit () أفضل واجهة برمجة تطبيقات؟

تم إنشاؤها على ٥ نوفمبر ٢٠١٩  ·  10تعليقات  ·  مصدر: alteryx/evalml

بعد استدعاء fit ، تحتاج إلى تحديد الطراز الذي تريد استخدامه قبل استدعاء predict . بهذه الطريقة ، ليس مثل الكائنات الأخرى التي لها طريقة مناسبة. fit يشبه search في هذه الحالة.

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

نعم ، أوافق. يمكن أن يشير Regressor أيضًا إلى ميزات الإدخال والمتغيرات وما إلى ذلك ، لذا فإن الانحدار أفضل.

بالإضافة إلى ذلك ، إذا كان التصنيف التلقائي والانحدار التلقائي أكثر تشابهًا مع "التعلم الآلي الآلي" ، نظرًا لأن التعلم الآلي والتصنيف والانحدار كلها عمليات.

ما لم يكن هناك أي معارضة نهائية ، سنذهب معها

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()

ال 10 كومينتر

بالطريقة التي أراها ، هناك ثلاثة قرارات يجب اتخاذها

  1. ماذا نسمي الطبقة
  2. ما هو اسم التوصية للمتغير الذي يحتوي على الفئة التي تمت تهيئتها
  3. ما هي الطريقة التي تنطلق بها الأشياء

بالنسبة إلى 1 و 2 ، إليك الخيارات التي توصلت إليها

import evalml

clf = evalml.AutoClassifierSearch()
auto = evalml.AutoClassifierSearch()
automl = evalml.AutoClassifierSearch()
seacher = evalml.AutoClassifierSearch()

clf = evalml.AutoClassifier()
auto = evalml.AutoClassifier()
automl = evalml.AutoClassifier()
seacher = evalml.AutoClassifier()

بالنسبة إلى 2 و 3 ، ها هي الخيارات التي توصلت إليها

clf.search()
auto.search()
automl.search()
seacher.search()

clf.run()
auto.run()
automl.run()
seacher.run()

أعتقد أنني أحب

import evalml
automl = evalml.AutoClassifierSearch()
automl.search()

المنطق هو

  1. الفئة evalml.AutoClassifierSearch وصفية. إنه بحث وليس مصنف بحد ذاته
  2. تخبرك الطريقة على وجه التحديد بما يحدث عندما تسميها. run() عام جدًا.
  3. اسم المتغير واسع ولا يتعارض مع اصطلاحات استخدام clf مع أدوات مثل sklearn.

البديل الذي يعجبني هو

import evalml
search = evalml.AutoClassifierSearch()
search.run()

يستخدم هذا اسم متغير وصفي أكثر ، لذا فإن استخدام run() سيكون مقبولاً. المحترف في ذلك هو أنه لا يقدم المصطلح الإضافي automl لأمثلةنا. ما يقلقني هو أن المستخدم يمكنه تسمية البحث بكل ما يريد ، ثم لا يكون my_custom_variable_name.run() وصفيًا للغاية.

أي أفكار؟ أي أساليب تسمية متغيرة فاتني؟ حتى إذا كنت لا تعتقد أنهم أفضل ، فقد يرمونهم هناك أيضًا لكي نفكر فيها.

أحب AutoClassifierSearch() للأسباب نفسها التي ذكرتها أعلاه ولكني لست معجبًا تمامًا باستدعاء المتغير automl كما يبدو أنه واسع و search لأنه فعل. ما رأيك في autosearch.run() ؟ اقترح شخص ما searcher في اجتماعنا وهذا يعمل أيضًا ولكنه لا يتدحرج بشكل جيد تمامًا.

أنا أحب AutoClassifierSearch() وباستخدام search() لأنني أوافق على أن run() يمكن أن يكون عامًا جدًا إذا حدد المستخدم اسم المتغير الخاص به.

بالنسبة للاسم الموصى به للمتغير الذي يحمل الفئة التي تمت تهيئتها ، فأنا معجب بـ automl أو searcher أو autosearch / autosearcher أكثر من search ، حتى لو ذهبنا بـ run() . (أجرى بحثًا موجزًا ​​على google و automl أو aml ينبثق في بعض المكتبات الأخرى هناك ، لما قيمته).

jeremyliweishih أنا لست متأكدًا من أنني أفهم وجهة نظرك حول search() . أعتقد أن الهدف سيكون اختيار فعل وصفي لتلك الطريقة. هل يمكنك توضيح ما كنت تقوله؟

آمل ألا أفهم سوء فهم لكني أعتقد أن jeremyliweishih يقول search لأن الاسم الموصى به للمتغير غريب بعض الشيء لأنه فعل ... على الأقل ، كان هذا أيضًا الشعور الذي شعرت به: D

@ kmax12 قصدت ذلك التعليق حول الاسم الموصى به للمتغير: search = AutoClassifierSearch() . للتوضيح أعتقد أن AutoClassifierSearch() لاسم الفصل سيكون رائعًا ويمكن أن يعمل autosearch لاسم المتغير. autosearch = AutoClassifierSearch() . ربما يمكن أن يعمل اسم متغير آخر مكون من ثلاثة أحرف أيضًا (aml ، asc ، ats).

jeremyliweishih أنا أفهم ما كنت تقوله الآن. أنا موافق.

بناءً على ما سبق ، أعتقد أننا جميعًا نحب إعادة التسمية إلى AutoClassifierSearch و AutoRegressorSearch .

من حيث اسم المتغير ، نحن أيضًا في الأسفل

autosearch = AutoClassifierSearch()
automl = AutoClassifierSearch()
aml = AutoClassifierSearch()

أنا شخصياً أحب automl لأنه وصفي. aml مشابه إذا كنت تعرف ما يمثله ، لكنني لا أعتقد أنه بهذه السهولة. هذا ما رأيته يستخدمه H20 في مستنداتهم (هل توجد مكتبات أخرى؟) أنا عمومًا لست معجبًا بتقصير أسماء المتغيرات دون سبب وجيه حقًا. الميزة الوحيدة التي أراها لـ aml هي أنها تتكون من 3 أحرف بدلاً من 6.

autosearch أمر منطقي بالنسبة لي لأنه اسم الفصل في الأساس. ومع ذلك ، فهو أطول من automl ولست متأكدًا من أنه يضيف وضوحًا. إذا كنا سنذهب إلى المسار autosearch ، أعتقد أن الطريقة يجب أن تكون run ، نظرًا لأن autosearcher = AutoClassifierSearch(); autosearcher.search() يبدو وكأنه مبالغة في البحث.

لذلك أرى خيارين بناءً على التحويل أعلاه

automl = AutoClassifierSearch()
automl.search()

أو

autosearch = AutoClassifierSearch()
autosearch.run()

أعتقد أن أيًا منهما سيعمل ولكني أحب .search() أكثر من .run() !

أنا أحب كل الأفكار التي طرحتموها. أنا معجب بشكل خاص بـ:

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()

ليس لتعقيد مناقشة مطولة بالفعل مع المزيد من الخيارات ، ولكن: هل يجب أن نقول AutoRegressorSearch أو AutoRegressionSearch ؟ أنا متحيز لهذا الأخير. لا أسمع مصطلح "الانحدار" بقدر ما أسمع "نموذج الانحدار" ، وبالمثل بالنسبة للتصنيف

نعم ، أوافق. يمكن أن يشير Regressor أيضًا إلى ميزات الإدخال والمتغيرات وما إلى ذلك ، لذا فإن الانحدار أفضل.

بالإضافة إلى ذلك ، إذا كان التصنيف التلقائي والانحدار التلقائي أكثر تشابهًا مع "التعلم الآلي الآلي" ، نظرًا لأن التعلم الآلي والتصنيف والانحدار كلها عمليات.

ما لم يكن هناك أي معارضة نهائية ، سنذهب معها

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات