Evalml: [ディスカッション] AutoClassifer.fit()とAutoRegressor.fit()は最高のAPIですか?

作成日 2019年11月05日  ·  10コメント  ·  ソース: alteryx/evalml

fitを呼び出した後、 predict呼び出す前に、使用するモデルを選択する必要があります。 このように、fitメソッドを持つ他のオブジェクトとは異なります。 この場合、 fitsearchに似ています。

最も参考になるコメント

はい、同意します。 回帰分析は、入力特徴、変数などを参照することもできるため、回帰分析の方が優れています。

さらに、AutoClassificationとAutoRegressionが「自動機械学習」に類似している場合、機械学習、分類、回帰はすべてプロセスであるためです。

最終的な反対がない限り、私たちは

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

全てのコメント10件

私の見方では、3つの決定を下す必要があります

  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. 変数名は広範であり、sklearnなどのツールでclfを使用する規則と競合しません。

私が好きな選択肢は

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

これはよりわかりやすい変数名を使用するため、 run()を使用しても問題ありません。 これの利点は、例に追加のautoml用語を導入しないことです。 私の懸念は、ユーザーが好きな名前で検索に名前を付けることができ、 my_custom_variable_name.run()があまり説明的ではないということです。

何かご意見は? 私が見逃した変数の命名アプローチはありますか? あなたがそれらがより良いとは思わない場合でも、私たちが検討するためにそれらをそこに捨てたほうがよいでしょう。

私はあなたが上で述べたのと同じ理由でAutoClassifierSearch()が好きですが、変数が広いように見えるのでautomlを呼び出し、動詞であるためsearchを呼び出すのはあまり好きではありません。 autosearch.run()についてどう思いますか? 誰かが私たちの会議でsearcherを提案しました、そしてそれはうまくいきます、しかしそれはそれほどうまく舌を転がしません。

私はAutoClassifierSearch()とても好きで、 search()を使用しています。これは、ユーザーが独自の変数名を定義した場合、 run()があまりにも一般的すぎる可能性があることに同意するためです。

初期化されたクラスを保持する変数の推奨名については、 search超えるautomlsearcherまたはautosearch / autosearcherファンです。 searchrun() 。 (簡単なグーグル検索をしました、そしてautomlまたはamlそこにある他のいくつかのライブラリのためにポップアップします、その価値のために)。

@jeremyliweishih私はsearch()についてのあなたのポイントを理解しているのかわかりません。 目標は、そのメソッドの説明的な動詞を選択することだと思います。 あなたが言っていたことを明確にできますか?

誤解されていないことを願っていますが、 @ jeremyliweishihsearchと言っていると思います。これは、変数の推奨名が動詞であるため少し奇妙なためです...少なくとも、それは私が得た感覚でもありました:D

@ kmax12変数の推奨名についてのコメントを意味しました: search = AutoClassifierSearch() 。 明確にするために、クラス名のAutoClassifierSearch()は素晴らしいと思いますし、変数名にはautosearchが機能する可能性があります。 autosearch = AutoClassifierSearch() 。 たぶん、別の3文字の変数名も機能する可能性があります(aml、asc、ats)。

@jeremyliweishih私はあなたが今言っていたことを理解しています。 同意します。

上記に基づいて、私たちは皆、名前をAutoClassifierSearchAutoRegressorSearch変更するのが好きだと思います。

変数名に関しては、私たちもダウンしています

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

私はautomlが説明的であるため、個人的に好きです。 amlは、それが何を意味するかを知っていれば似ていますが、それほど直感的ではないと思います。 これは、H20がドキュメントで使用しているものです(他のライブラリはありますか?)私は一般的に、本当に正当な理由がない限り、変数名を短縮するのが好きではありません。 aml見られる唯一の利点は、6文字ではなく3文字であるということです。

autosearchは基本的にクラス名なので、私には意味があります。 ただし、 automlより長く、わかりやすくなるかどうかはわかりません。 autosearchルートを使用する場合、 autosearcher = AutoClassifierSearch(); autosearcher.search()は検索ではやり過ぎのように見えるので、メソッドはrunになるはずです。

したがって、上記のコンボに基づいて2つのオプションが表示されます

automl = AutoClassifierSearch()
automl.search()

また

autosearch = AutoClassifierSearch()
autosearch.run()

働くだろうどちらかだと思いますが、私のような私.search()以上.run()

私はあなたが捨てたすべてのアイデアが好きです。 私は特に次のファンです:

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

すでに長い議論をより多くのオプションで複雑にすることはありませんが、 AutoRegressorSearchまたはAutoRegressionSearchと言うべきですか? 私は後者に部分的です。 「回帰モデル」と同じように、「回帰モデル」という用語はほとんど聞こえません。分類についても同様です。

はい、同意します。 回帰分析は、入力特徴、変数などを参照することもできるため、回帰分析の方が優れています。

さらに、AutoClassificationとAutoRegressionが「自動機械学習」に類似している場合、機械学習、分類、回帰はすべてプロセスであるためです。

最終的な反対がない限り、私たちは

automl = AutoClassificationSearch()
automl = AutoRegressionSearch()
automl.search()
このページは役に立ちましたか?
0 / 5 - 0 評価