Después de llamar a Fit, debe seleccionar el modelo que desea usar antes de llamar a predict
. De esa manera, no es como otros objetos que tienen un método de ajuste. fit
es más como search
en este caso.
A mi modo de ver, hay tres decisiones que tomar
Para 1 y 2, aquí están las opciones que se me ocurrieron.
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()
Para 2 y 3, estas son las opciones que se me ocurrieron.
clf.search()
auto.search()
automl.search()
seacher.search()
clf.run()
auto.run()
automl.run()
seacher.run()
pienso que me gusta
import evalml
automl = evalml.AutoClassifierSearch()
automl.search()
Mi razonamiento es
evalml.AutoClassifierSearch
es descriptiva. Es una búsqueda, no un clasificador en sí mismo.run()
es muy general.clf
con herramientas como sklearn.La alternativa que me gusta es
import evalml
search = evalml.AutoClassifierSearch()
search.run()
Esto usa un nombre de variable más descriptivo, por lo que usar run()
estaría bien. La ventaja de esto es que no introduce el término adicional automl
en nuestros ejemplos. Mi preocupación sería que un usuario pudiera buscar por nombre lo que quisiera y luego my_custom_variable_name.run()
no es muy descriptivo.
¿Alguna idea? ¿Algún enfoque de nomenclatura variable que me perdí? Incluso si no cree que sean mejores, también podría tirarlos para que los consideremos.
Me gusta AutoClassifierSearch()
por las mismas razones que mencionaste anteriormente, pero no soy un fanático de llamar a la variable automl
ya que parece amplia y search
ya que es un verbo. ¿Qué opinas de autosearch.run()
? Alguien propuso searcher
en nuestra reunión y eso funciona muy bien, pero no sale tan bien de la lengua.
Me gusta bastante AutoClassifierSearch()
y usar search()
ya que estoy de acuerdo en que run()
podría ser demasiado genérico si el usuario define su propio nombre de variable.
Para el nombre recomendado de la variable que contiene la clase inicializada, soy fan de automl
, searcher
o autosearch
/ autosearcher
sobre search
, incluso si elegimos run()
. (Hice una breve búsqueda en Google y automl
o aml
aparecen para algunas otras bibliotecas, por lo que vale).
@jeremyliweishih No estoy seguro de haber entendido tu punto sobre search()
. Creo que el objetivo sería elegir un verbo descriptivo para ese método. ¿Puedes aclarar lo que estabas diciendo?
Con suerte no estoy malinterpretando, pero creo que @jeremyliweishih está diciendo search
ya que el nombre recomendado de la variable es un poco extraño porque es un verbo ... al menos, esa fue también la sensación que tuve: D
@ kmax12 Quise decir ese comentario sobre el nombre recomendado de la variable: search = AutoClassifierSearch()
. Para aclarar, creo que AutoClassifierSearch()
para el nombre de la clase sería genial y autosearch
podría funcionar para el nombre de la variable. autosearch = AutoClassifierSearch()
. Quizás otro nombre de variable de tres letras también podría funcionar (aml, asc, ats).
@jeremyliweishih, entiendo lo que estabas diciendo ahora. estoy de acuerdo.
Basado en lo anterior, creo que a todos nos gusta cambiar el nombre a AutoClassifierSearch
y AutoRegressorSearch
.
En términos del nombre de la variable, también estamos abajo
autosearch = AutoClassifierSearch()
automl = AutoClassifierSearch()
aml = AutoClassifierSearch()
Personalmente, me gusta automl ya que es descriptivo. aml
es similar si sabes lo que significa, pero no creo que sea tan intuitivo. esto es lo que he visto que utiliza H20 en sus documentos (¿hay otras bibliotecas?). Generalmente no soy un fanático de acortar los nombres de las variables sin una buena razón. La única ventaja que veo en aml
es que tiene 3 caracteres en lugar de 6.
autosearch
tiene sentido para mí ya que básicamente es el nombre de la clase. sin embargo, es más largo que automl
y no estoy seguro de que añada claridad. Si tuviéramos que seguir la ruta autosearch
, creo que el método debería ser run
, ya que autosearcher = AutoClassifierSearch(); autosearcher.search()
parece una exageración en la búsqueda, jaja.
Entonces veo dos opciones basadas en la conversación anterior.
automl = AutoClassifierSearch()
automl.search()
o
autosearch = AutoClassifierSearch()
autosearch.run()
Creo que cualquiera funcionaría, ¡pero me gusta .search()
más de .run()
!
Me gustan todas las ideas que has descartado. Soy un fan particular de:
automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
No para complicar una discusión ya larga con más opciones, pero: ¿deberíamos decir AutoRegressorSearch
o AutoRegressionSearch
? Soy parcial por lo último. No escucho el término "regresor" tanto como escucho "modelo de regresión" y lo mismo ocurre con la clasificación
Sí, estoy de acuerdo. Regressor también puede referirse a las características de entrada, variables, etc., por lo que la regresión es mejor.
Además, si la clasificación automática y la regresión automática son más análogas al "aprendizaje automático automático", ya que el aprendizaje automático, la clasificación y la regresión son todos procesos.
a menos que haya una oposición final, iremos con
automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
Comentario más útil
Sí, estoy de acuerdo. Regressor también puede referirse a las características de entrada, variables, etc., por lo que la regresión es mejor.
Además, si la clasificación automática y la regresión automática son más análogas al "aprendizaje automático automático", ya que el aprendizaje automático, la clasificación y la regresión son todos procesos.
a menos que haya una oposición final, iremos con