Evalml: [讨论] AutoClassifer.fit() 和 AutoRegressor.fit() 是最好的 API 吗?

创建于 2019-11-05  ·  10评论  ·  资料来源: alteryx/evalml

调用 fit 后,您需要在调用predict之前选择要使用的模型。 这样,它不像其他具有 fit 方法的对象。 在这种情况下, fit更像search

最有用的评论

是的,我同意。 Regressor 也可以参考输入特征、变量等,所以回归比较好。

另外,如果AutoClassification和AutoRegression更类似于“自动机器学习”,因为机器学习、分类和回归都是过程。

除非有任何最终反对意见,否则我们会去

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()如果用户定义他们自己的变量名可能会过于通用。

对于保存初始化类的变量的推荐名称,我喜欢automlsearcherautosearch / autosearcher超过search ,即使我们确实使用了run() 。 (做了一个简短的谷歌搜索, automlaml弹出其他一些图书馆,看看它的价值)。

@jeremyliweishih我不确定我理解你对search()看法。 我认为目标是为该方法选择一个描述性动词。 你能澄清一下你在说什么吗?

希望我没有误解,但我认为@jeremyliweishihsearch作为变量的推荐名称有点奇怪,因为它是一个动词......至少,这也是我的感觉:D

@kmax12我的意思是关于变量的推荐名称的评论: search = AutoClassifierSearch() 。 为了澄清,我认为AutoClassifierSearch()用于类名会很棒,而autosearch可以用于变量名。 autosearch = AutoClassifierSearch() 。 也许另外三个字母的变量名也可以工作(aml、asc、ats)。

@jeremyliweishih我明白你现在在说什么。 我同意。

基于以上,我想我们都喜欢重命名为AutoClassifierSearchAutoRegressorSearch

就变量名称而言,我们也失败了

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

我个人喜欢 automl 因为它是描述性的。 aml是类似的,如果你知道它代表什么,但我认为它不是那么直观。 这就是我在他们的文档中看到 H20 使用的内容(还有其他库吗?)我通常不喜欢在没有充分理由的情况下缩短变量名。 我看到aml的唯一优势是它是 3 个字符而不是 6 个。

autosearch对我来说很有意义,因为它基本上是类名。 然而,它比automl ,我不确定它是否增加了清晰度。 如果我们要走autosearch路线,我认为该方法应该是run ,因为autosearcher = AutoClassifierSearch(); autosearcher.search()在搜索上似乎有点矫枉过正,哈哈。

所以我看到基于上述 convo 的两个选项

automl = AutoClassifierSearch()
automl.search()

或者

autosearch = AutoClassifierSearch()
autosearch.run()

认为两者都可以,但我更喜欢.search()不是.run()

我喜欢你抛出的所有想法。 我特别喜欢:

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

不要用更多选项使已经冗长的讨论复杂化,但是:我们应该说AutoRegressorSearch还是AutoRegressionSearch ? 我偏向后者。 我听到的“回归器”这个词几乎没有听到“回归模型”的多,分类也类似

是的,我同意。 Regressor 也可以参考输入特征、变量等,所以回归比较好。

另外,如果AutoClassification和AutoRegression更类似于“自动机器学习”,因为机器学习、分类和回归都是过程。

除非有任何最终反对意见,否则我们会去

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
此页面是否有帮助?
0 / 5 - 0 等级