Evalml: デフォルトで二項分類しきい値の調整を再度有効にする

作成日 2020年04月15日  ·  17コメント  ·  ソース: alteryx/evalml

この機能を#346機能ブランチに追加し、 predictを再計算し、automlの速度を低下させていたため、#606でバックアウトしました。

デフォルトでこれを再度有効にする必要があります。 そのためには、現在スコアで計算されている予測出力をキャッシュする必要があります。 長期的な解決策は、予測をキャッシュ(#466)でメモ化することですが、短期的には何かを実行できるはずです。

これは、パイプラインクラスのscoreメソッド間の重複コードのクリーンアップを追跡する#579にも関連しています。

enhancement

全てのコメント17件

来週はひびを入れたいと思います。 私はキャッシュを行うためのいくつかの異なる方法を研究していて、いくつかのものをローカルでテストしました。

パフォーマンステストMVPができるまで、これを行うべきではありません

パフォーマンステストMVPができたので、これを実行する必要があります。 これは#1024の一部として登場しました。

@ angela97linありがとうございます! はい、間違いなく。

次のステップは、いくつかの二項分類問題について、パフォーマンスの前後の比較を生成することです。

追加の考慮事項

  • ログ損失(binクラスのデフォルトの目標)とAUCは、しきい値に依存しないため、これによってまったく変更しないでください。 しかし、F1のような他の指標は間違いなく改善されるはずです。 いくつか見てみるといいでしょう。
  • フィットタイムがヒットします。 問題は、ヒットがどれほど悪いかということです。 私は10-20%以下の増加を期待します。
  • しきい値選択分割のサイズをスイープして実験することができます。 これにより、過剰適合/過適合を防止することにより、ホールドアウトの精度を向上させることができます。 しきい値調整分割サイズを増やすと、トレーニング分割サイズも減少し、適合時間が短縮されます。

今後の仕事

  • 現在、データサイズに関するこれに対する保護手段はありません。 ただし、これは一般的なトレーニングセットに適用されるため、別の問題を提出する必要があります。

4月の元の記事で、私は言った

現在スコアで計算されている予測出力をキャッシュする必要があります。

私はそれがもう当てはまらないと信じています、無視することができます。 そのコメントは、 scoreをリファクタリングする前から残っていました。 さらに、別の分割でしきい値の最適化を行うため、キャッシュするものはありません。 @freddyaboulton FYI

@dsherry @ angela97lin分析ドキュメントの最初のいくつかのセクションをここにまとめ

@freddyaboultonコメントを残しました。 間違いなく対数損失を確認する必要があります。これは、少なくとも最初のバッチでは変化がないことを示しているはずです。 ただし、チューニングを有効にした場合の効果を確認できるように、F1などのしきい値に敏感なものの最適化も試してみる必要があると思います。

@freddyaboulton申し訳ありませんが、テンプレートから残ったプロットに混乱しました。最初の部分だけを読んだことについてのコメントは表示されませんでした🤦‍♂️私はあなたが持っているものが好きです

@freddyaboulton参考までに、ドキュメントを投稿してから、この問題を進行中に移動しました

@dsherry @ angela97lin 「datasets_small_0.yaml」ファイルの分析を終了しました。

つまり、しきい値を調整した後、パフォーマンスが実際に低下しました。これは、しきい値を調整するために層化分割を使用していないことが原因である可能性があります。

@freddyaboultonああ、そうかもしれない。

私はあなたのドキュメントをレビューし、コメントを残しました。 私は新しいチャートと統計が好きです。 それらを再利用できるように、それらをlooking_glass/analysis/に追加し直す方法を見つける必要があります。 でも押さない。

上から頭に浮かぶいくつかのオプション:

  • しきい値最適化分割に層化分割を使用する
  • しきい値最適化分割の最小行数を適用します。 これが達成できない場合、警告してしきい値を設定しないか、エラーが発生する可能性があります
  • 小さいデータセットの場合、トレーニングデータ全体をしきい値最適化分割として使用し、過剰適合のリスクを冒します

最初に層化サンプリングに切り替えて、それが何をするかを確認する必要があると思います。

もう1つの試みは、分割サイズを80%トレーニング20%しきい値最適化から50%トレーニング50%しきい値最適化に切り替えることです。 これがうまくいくかどうかは少し疑わしいですが、試してみるのは簡単で、見るのも面白いでしょう。

@jeremyliweishihが#1049、 @ freddyaboultonをピックアップしているので、これを彼に渡すことをお勧めします。 私はあなたにそれを理解させます:)

@freddyaboultonあなたはこれに取り組んでいませんよね? @jeremyliweishihはそれを取ることができますか?

@jeremyliweishih @dsherryどうぞどうぞ! 最初の分析では、チューニングを有効にするだけではスコアは向上しないことが示されました。 別のデータ分割戦略を使用すると役立つ場合があります。

Dev Backlogに戻り、さらにデータ分割作業を行った後、これを実行します。

@ bchen1116と私は話し合いましたが、これは#973に必要だと感じています

このページは役に立ちましたか?
0 / 5 - 0 評価