機械学習モデルのパフォーマンスが良好かどうかを確認する方法
予測モデリング問題に対応する機械学習モデルを開発した後、モデルのパフォーマンスが良好かどうかをどのように判断すればよいでしょうか?
初心者の方からよくいただく質問です。
初心者として、この質問に対する答えを求めることがよくあります。 x% の精度または x のエラー スコアが良いかどうかを誰かに教えてもらいたいとします。
この投稿では、この質問に自分で明確に答える方法を発見し、自分のモデル スキルが優れているかどうかを知ることができます。
この投稿を読むと、次のことがわかります。
- ベースライン モデルを使用して、問題のパフォーマンスの基盤を発見し、それによって他のすべてのモデルを評価できること。
- すべての予測モデルにはエラーが含まれており、データとアルゴリズムの確率的な性質を考慮すると、完璧なスコアは実際には不可能です。
- 応用機械学習の本当の仕事は、可能なモデルの空間を探索し、特定のデータセットのベースラインと比較して良好なモデル スコアがどのようなものであるかを発見することです。
始めましょう。
概要
この投稿は 4 つの部分に分かれています。彼らです:
- モデルのスキルは相対的なものです
- ベースラインモデルスキル
- ベストスコアとは何ですか?
- モデルスキルの限界を発見する
モデルのスキルは相対的なものです
予測モデリングの問題は独特です。
これには、所有している特定のデータ、使用しているツール、達成するスキルが含まれます。
予測モデリングの問題はこれまで解決されていません。したがって、優れたモデルがどのようなものであるか、またどのようなスキルを持っているのかを知ることはできません。
ドメインの知識に基づいて、熟練したモデルがどのようなものであるかについてのアイデアはあるかもしれませんが、そのスキル スコアが達成可能かどうかはわかりません。
私たちができる最善のことは、特定のデータに対する機械学習モデルのパフォーマンスを、同じデータでトレーニングされた他のモデルと比較することです。
機械学習モデルのパフォーマンスは相対的なものであり、優れたモデルがどのようなスコアを達成できるかという考え方は意味があり、同じデータでトレーニングされた他のモデルのスキル スコアのコンテキストでのみ解釈できます。
ベースラインモデルスキル
機械学習モデルのパフォーマンスは相対的なものであるため、堅牢なベースラインを開発することが重要です。
ベースラインは、予測モデリングの問題について予測を行うためのシンプルでよく理解されている手順です。このモデルのスキルは、特定のデータセットに対する機械学習モデルの許容可能な最低パフォーマンスの基礎を提供します。
ベースライン モデルの結果は、データでトレーニングされた他のすべてのモデルのスキルを評価できるポイントを提供します。
ベースライン モデルの 3 つの例は次のとおりです。
- 回帰問題の結果の平均値を予測します。
- 分類問題のモード結果値を予測します。
- 単変量時系列予測問題の出力 (永続性と呼ばれる) として入力を予測します。
問題のベースライン パフォーマンスは、他のすべてのモデルを比較および評価するための基準として使用できます。
モデルがベースラインを下回るパフォーマンスを達成した場合は、何か問題がある (例: バグがある) か、モデルが問題に対して適切ではありません。
ベストスコアとは何ですか?
分類問題に取り組んでいる場合、最高のスコアは 100% の精度です。
回帰問題に取り組んでいる場合、最良のスコアは 0.0 エラーです。
これらのスコアは、上限/下限を達成することが不可能です。すべての予測モデリングの問題には予測誤差があります。期待してください。エラーは次のようなさまざまなソースから発生します。
- データサンプルが不完全。
- データにノイズが含まれています。
- モデリング アルゴリズムの確率的な性質。
最高のスコアを達成することはできませんが、選択したメジャーに対して可能な限り最高のパフォーマンスがどの程度であるかを知っておくことは良いことです。真のモデルのパフォーマンスは、ベースラインと可能な限り最高のスコアの間の範囲内に収まることがわかります。
代わりに、データセット上で可能なモデルの空間を検索し、良いスコアと悪いスコアがどのようなものかを発見する必要があります。
モデルスキルの限界を発見する
ベースラインを取得したら、予測モデリング問題に対するモデルのパフォーマンスの範囲を調査できます。
実際、これは大変な作業であり、プロジェクトの目的でもあります。特定のデータセットで予測を行う際に確実に機能することを実証できるモデルを見つけることです。
この問題には多くの戦略があります。検討していただきたいのは次の 2 つです。
- 高値で開始します。ランダム フォレストや勾配ブースティングなど、さまざまな予測モデルの問題に対して適切に実行できることが知られている、洗練された機械学習手法を選択します。問題に基づいてモデルを評価し、その結果をおおよそのトップエンドのベンチマークとして使用し、同様のパフォーマンスを達成する最も単純なモデルを見つけます。
- 徹底的な検索。この問題に関して考えられるすべての機械学習手法を評価し、ベースラインと比較して最高のパフォーマンスを達成する手法を選択します。
「高値から開始」アプローチは迅速であり、問題に対して期待されるモデル スキルの限界を定義し、同様の結果を達成できる単純な (オッカムの剃刀など) モデルを見つけるのに役立ちます。また、問題が迅速に解決可能/予測可能かどうかを確認するのにも役立ちます。すべての問題が予測可能であるわけではないため、これは重要です。
「徹底的な検索」は時間がかかり、実際にはモデルのスキルが他のほとんどの懸念事項よりも重要である長期にわたるプロジェクトを対象としています。私はよくこのアプローチのバリエーションを実行して、同様のメソッドのスイートをバッチでテストし、それをスポットチェック アプローチと呼んでいます。
どちらの方法でも、ベースラインと比較できるモデルのパフォーマンス スコアの母集団が得られます。
良いスコアがどのようなものか、悪いスコアがどのようなものかを知ることができます。
さらに読む
さらに詳しく知りたい場合は、このセクションでこのトピックに関するさらなるリソースを提供します。
- Python を使用して時系列予測のベースライン予測を作成する方法
- Python を使用してベースラインの機械学習アルゴリズムをゼロから実装する方法
- 機械学習のパフォーマンス向上に関するチートシート
まとめ
この投稿では、予測モデリングの問題は独特であり、優れたモデルのパフォーマンス スコアはベースライン パフォーマンスとの相対でのみ知ることができることがわかりました。
具体的には、次のことを学びました。
- ベースライン モデルを使用して、問題のパフォーマンスの基盤を発見し、それによって他のすべてのモデルを評価できること。
- すべての予測モデルには誤差が含まれており、データとアルゴリズムの確率的な性質を考慮すると、完璧なスコアは実際には不可能です。
- 応用機械学習の本当の仕事は、可能なモデルの空間を探索し、特定のデータセットのベースラインと比較して良好なモデル スコアがどのようなものであるかを発見することです。
ご質問はありますか?
以下のコメント欄にご質問ください。できる限りお答えいたします。