Depois de chamar o ajuste, você precisa selecionar o modelo que deseja usar antes de chamar predict
. Dessa forma, não é como outros objetos que possuem um método de ajuste. fit
é mais parecido com search
neste caso.
A meu ver, há três decisões a serem tomadas
Para 1 e 2, aqui estão as opções que eu criei
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 e 3, aqui estão as opções que criei
clf.search()
auto.search()
automl.search()
seacher.search()
clf.run()
auto.run()
automl.run()
seacher.run()
Eu acho que eu gosto
import evalml
automl = evalml.AutoClassifierSearch()
automl.search()
Meu raciocínio é
evalml.AutoClassifierSearch
é descritiva. É uma pesquisa, não um classificador em sirun()
é muito geral.clf
com ferramentas como sklearn.A alternativa que gosto é
import evalml
search = evalml.AutoClassifierSearch()
search.run()
Isso usa um nome de variável mais descritivo, portanto, usar run()
seria adequado. A vantagem disso é que ele não introduz o termo automl
extra em nossos exemplos. Minha preocupação seria que um usuário pudesse pesquisar o nome que quisesse e então my_custom_variable_name.run()
não é muito descritivo.
Alguma ideia? Alguma abordagem de nomenclatura de variável que eu perdi? Mesmo que você não ache que eles são melhores, pode muito bem jogá-los lá para que os consideremos.
Eu gosto de AutoClassifierSearch()
pelos mesmos motivos que você declarou acima, mas não sou muito fã de chamar a variável automl
porque parece ampla e search
porque é um verbo. O que você acha sobre autosearch.run()
? Alguém propôs searcher
em nossa reunião e isso funciona bem, mas não sai da boca tão bem.
Eu gosto bastante de AutoClassifierSearch()
e usando search()
porque concordo que run()
pode ser muito genérico se o usuário definir seu próprio nome de variável.
Para o nome recomendado da variável que contém a classe inicializada, sou fã de automl
, searcher
ou autosearch
/ autosearcher
sobre search
, mesmo que usássemos run()
. (Fiz uma breve pesquisa no google e automl
ou aml
apareceu para algumas outras bibliotecas lá fora, para o que vale a pena).
@jeremyliweishih não tenho certeza se entendi seu ponto sobre search()
. Acho que o objetivo seria escolher um verbo descritivo para esse método. você pode esclarecer o que estava dizendo?
Espero não estar entendendo mal, mas acho que @jeremyliweishih está dizendo search
porque o nome recomendado da variável é um pouco estranho porque é um verbo ... pelo menos, foi essa a sensação que tive: D
@ kmax12 Eu quis dizer aquele comentário sobre o nome recomendado da variável: search = AutoClassifierSearch()
. Para esclarecer, acho que AutoClassifierSearch()
para o nome da classe seria ótimo e autosearch
poderia funcionar para o nome da variável. autosearch = AutoClassifierSearch()
. Talvez outro nome de variável de três letras também funcione (aml, asc, ats).
@jeremyliweishih eu entendo o que você estava dizendo agora. eu concordo.
Com base no que precede, acho que todos gostamos de renomear para AutoClassifierSearch
e AutoRegressorSearch
.
Em termos de nome de variável, também diminuímos
autosearch = AutoClassifierSearch()
automl = AutoClassifierSearch()
aml = AutoClassifierSearch()
Eu pessoalmente gosto do automl, pois é descritivo. aml
é semelhante se você souber o que significa, mas não acho que seja tão intuitivo. isso é o que eu vi o H20 usar em seus documentos (existem outras bibliotecas?) Em geral, não sou fã de encurtar nomes de variáveis sem um bom motivo. A única vantagem que vejo em aml
é que tem 3 caracteres em vez de 6.
autosearch
faz sentido para mim, pois basicamente é o nome da classe. no entanto, é mais longo do que automl
e não tenho certeza se adiciona clareza. Se fôssemos seguir a rota autosearch
, acho que o método deveria ser run
, já que autosearcher = AutoClassifierSearch(); autosearcher.search()
parece um exagero na busca, haha.
Portanto, vejo duas opções com base na convenção acima
automl = AutoClassifierSearch()
automl.search()
ou
autosearch = AutoClassifierSearch()
autosearch.run()
Acho que qualquer um dos dois funcionaria, mas gosto de .search()
vez de .run()
!
Gosto de todas as ideias que você jogou fora. Sou um fã particular de:
automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
Não para complicar uma discussão já longa com mais opções, mas: devemos dizer AutoRegressorSearch
ou AutoRegressionSearch
? Sou parcial para o último. Não ouço o termo "regressor" quase tanto quanto ouço "modelo de regressão" e, da mesma forma, para classificação
Sim, eu concordo. O regressor também pode se referir aos recursos de entrada, variáveis, etc., portanto, a regressão é melhor.
Além disso, se AutoClassification e AutoRegression forem mais análogos a "aprendizado de máquina automático", já que aprendizado de máquina, classificação e regressão são todos processos.
a menos que haja alguma oposição final, iremos com
automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
Comentários muito úteis
Sim, eu concordo. O regressor também pode se referir aos recursos de entrada, variáveis, etc., portanto, a regressão é melhor.
Além disso, se AutoClassification e AutoRegression forem mais análogos a "aprendizado de máquina automático", já que aprendizado de máquina, classificação e regressão são todos processos.
a menos que haja alguma oposição final, iremos com