問題
常に真を予測するモデルは、完全なリコールスコアを持っています。 automlがリコール用に最適化できるようにすることで、簡単なモデルを作成するように促しています。
ここで役立つリファレンス。
提案
リコール目標を削除します。
一般に、automlの目標のセットは、価値があると思われるものに制限する必要があります。これらの目標を最適化すると、優れたモデルが生成されます。
二項分類の目的も追加する必要があると思います。 #457には、不均衡なクラスに適した提案が含まれています。
質問
*精度についても同様の議論をすることができますか? それとも、そのために最適化することに価値がありますか?
*正確さのために同様の議論をすることはできますか(#294)?
@ angela97lin @ kmax12 FYI
簡単なモデルが得られないという意味で、精度と精度は問題ないと思います。
必ずしも目的としてリコールを削除する必要はありません。automl検索でリコールに対して最適化する必要はありません。 たとえば、f1を最適化したいのですが、その横にリコールスコアが表示されます。
@ kmax12ええ、そうです、リコールを計算するコードを削除したくありません。パイプラインのスコアとしてリコールの計算をサポートしたいのですが、automlでサポートされている最適化の目的としてそれを禁止したいと思います。
これは、ROCと混同行列(#427、#365)の二項分類プロット/情報メソッドに関する進行中の議論を思い出させます。 これらはautomlで最適化できるメトリックではなく、単一の数値スコアでもありませんが、APIでは、これらを定義する最も簡単な方法は、 ObjectiveBase
のインスタンスとして追加することでした。
現在、パイプラインを使用して計算できるものがいくつかあります。
これまで、2、3、および4を表すためにObjectiveBase
を使用しようとしてきたと思います。つまり、automlプロセスとは別に、スコアリングメソッドとプロットメソッドを定義するための明確なAPIがありません。 。
ここでの次のステップは、これらのAPIを設計することだと思います。 すでに#392として提出したようです。 このチケットを更新して、その上でブロックします。
目標APIの現在のリワークでは、代わりにROCと混同行列をPlotMetrics
に移動しました(これには設計が少なく、これは、これら2つを残りの目標から分離する最も簡単な方法でした。物事を壊す)。 BinaryClassificationObjective
の属性としてcan_optimize_threshold
も追加したので、fit()がcan_optimize_threshold=True
の目的で呼び出された場合は、その目的に合わせて最適化します。それ以外の場合は、正確さ。 これについての考えと、これがここで提起された質問のいくつかとどのように一致する可能性がありますか? ユーザーがリコールでfit
を呼び出したのかどうかは不明ですが、代わりに精度を最適化しましたか?
@ angela97linはい、ROC /混乱をObjectiveBase
から移動することは前向きな一歩だったと思います! #392はさらに進んでいくべきだと思います。 代わりに、#392でAPIを更新する方法についての会話を続けましょう。 そうすれば、この問題は、このようなものをより一般的に処理する方法について決定した後、更新のリコールを追跡することができます。
また、二項分類のしきい値の最適化は別のテーマだと思います。ありがたいことに、#346で進行中の作業が100%処理されています。
以前の@eccabayおよび@jeremyliweishihとの議論の要約:これをサポートするためのオプションは次のとおりです。
objectives/utils.py
OPTIONS
のリコール目標のエントリを削除し、automlでそれらの目標が許可されていないことを確認します。
最も参考になるコメント
簡単なモデルが得られないという意味で、精度と精度は問題ないと思います。
必ずしも目的としてリコールを削除する必要はありません。automl検索でリコールに対して最適化する必要はありません。 たとえば、f1を最適化したいのですが、その横にリコールスコアが表示されます。