This video extends the concept of McNemar's test, which is a pairwise procedure, but recommending Cochran's Q (a generalization of McNemar's test) as an omni...
K 分割交差検証 t 検定は、アルゴリズムの比較に使用されるもう 1 つの方法です。より正確な評価が得られますが、それでも偽陽性率がわずかに高くなります。この欠点にもかかわらず、これは依然として有用なテストです。
交差検証を繰り返す対応のある t 検定は、複数のモデルをフィッティングする必要があるもう 1 つのアプローチです。他のいくつかのテストよりも偽陽性率は低くなりますが、モデルのフィッティングが繰り返されるため、依然として計算量が多くなる可能性があります。
より高度な手法は 5x2 交差検証済みペア t 検定で、マクネマー検定と比較して偽陽性率が低く、統計的検出力がわずかに高くなります。これは、アルゴリズム比較に対するより堅牢なアプローチを提供します。さらに、5x2 相互検証されたペア f 検定など、さらなる改善をもたらす新しいアプローチもあります。
講義ノートでは、これらのテストやその他の統計的アプローチについてさらに詳しく説明します。さらに、これらのテストのほとんどを、講義資料に付属するライブラリである MLA extend で実装しました。マクネマーの検定、コクランの Q 検定、リサンプリングされた対応のある t 検定 (非推奨)、K 分割交差検証された対応のある t 検定、5x2 交差検証された組み合わせ t 検定などの実装を見つけることができます。
This video gives a brief overview of different statistical tests that exist for model and algorithm comparisons.More details in my article "Model Evaluation,...
3 方向ホールドアウト法は効果的ですが、より良いアプローチは、前の説明で説明した k 分割相互検証です。この方法では、データを k 個のフォールドに分割し、各フォールドが順番に検証セットとして使用され、残りがトレーニング セットとして機能します。このアプローチは、データセットのサイズが制限されている場合に特に有益です。より大きなデータセットの場合、特にデータセットのサイズが一般的に大きくなり、モデルの収束などの追加の考慮事項が必要となる深層学習では、3 方向ホールドアウトが依然として実行可能なオプションになる可能性があります。
次に、ネストされた相互検証について説明します。これは、さまざまなアルゴリズムを比較することでさらに一歩前進します。 K 最近傍アルゴリズム、デシジョン ツリー、勾配ブースティング、ランダム フォレストなどのアルゴリズムを比較したいとします。各アルゴリズムはハイパーパラメータ調整を受けて、最適なモデルを選択します。相互検証手順に別のループを導入し、ネストされた相互検証が行われます。外側のループはモデルの評価を担当し、内側のループはハイパーパラメーターの調整に重点を置きます。この 2 段階の手順により、ネストされた相互検証は基本的に 2 つのネストされた k 分割相互検証で構成されるため、通常の k 分割相互検証よりも複雑になります。
This video introduces the main concept behind nested cross-validation for algorithm selection.More details in my article "Model Evaluation, Model Selection, ...
「verbose_one」ノートブックでは、層別 k 分割法を手動で使用する、より手動的なアプローチを採用しました。一方、「verbose_two」ノートブックでは、cross_validate 関数を利用しました。最後に、「コンパクト」ノートブックでは、cross_val_score を使用しました。各ノートブックは、分析時に異なるレベルの情報を提供します。現時点では、層別 k 分割オブジェクトについてはすでによく知っているため、「verbose_one」ノートブックから始めることをお勧めします。
Picking up where the previous video left off, this video goes over nested cross-validation by looking at a scikit-learn code example.More details in my artic...
This first video in L12 gives an overview of what's going to be covered in L12.-------This video is part of my Introduction of Machine Learning course.Next v...
This video goes over the concept of a confusion matrix and how it relates to the true positive and false positives rates, among others.-------This video is p...
This video looks at binary performance metrics such as 12.2 Precision, Recall, and F1 Score.-------This video is part of my Introduction of Machine Learning ...
This video explains the concept behind receiver operating characteristic curves, relating it back to the concept of true and false positive rates.-------This...
機能の選択が重要かつ有益である理由はいくつかあります。まず、次元の呪いが機械学習に課題をもたらします。特徴の数が増えると、特定のアルゴリズムのパフォーマンスが低下したり、過学習が起こりやすくなる場合があります。機能セットを減らすことで、これらの問題を軽減し、特に K 最近傍法やデシジョン ツリーなどのアルゴリズムのモデルの精度と信頼性を向上させることができます。
This video gives a brief intro of how we care about dimensionality reduction and introduces feature selection as a subcategory that we will cover in more det...
11.3 複数のペアごとの比較 (L11 モデル評価パート 4)
11.3 複数のペアごとの比較 (L11 モデル評価パート 4)
文献や GitHub などのプラットフォームで見つかった他の複数のモデルと比較したいモデルがあるシナリオでは、ペアごとの比較を行うと問題が発生する可能性があります。 k 個の異なるモデルがある場合、各ペアでペアワイズ テストを実行すると、k 回 (k - 1) / 2 の組み合わせが生成され、これは大きな数になる可能性があります。このため、複数の仮説検定を実行する場合のエラー率に関する懸念が生じます。
通常、仮説検定は 0.05 以下の有意水準で実行されます。これは、帰無仮説が正しい場合、誤って棄却される可能性が 5% あり、誤り率が 5% になることを意味します。複数の検定が実行されると、帰無仮説を誤って棄却する誤り率は、r 倍のアルファに増加する可能性があります。ここで、r は実行される検定の数です。最悪の場合、すべてのペアワイズ帰無仮説が真である場合、誤り率は最大 r 倍のアルファになる可能性があります。
この問題に対処するための一般的なアプローチは、2 段階のプロセスを含む保護されたプロシージャを使用することです。最初のステップはオムニバス テストで、すべてのモデルを組み合わせたパフォーマンスに有意な差があるかどうかを評価します。帰無仮説はすべてのモデルの分類精度が等しいと仮定しますが、対立仮説はそれらが等しくないことを示唆します。
オムニバス検定で帰無仮説が棄却され、モデルのパフォーマンスに差があることが示された場合は、ペアごとの事後検定を含む 2 番目のステップに進むことができます。ただし、エラー率を制御するには、複数の比較を調整することが重要です。一般的に使用される調整方法の 1 つは、有意水準を比較数で割るボンフェローニ法です。
ペアごとのテストでは、マクネマー テストを使用できます。これらの統計手順は形式的であり、貴重な洞察を提供しますが、機械学習の実践では、このような広範な比較を実行することはあまり一般的ではないことに注意することが重要です。通常、研究者は予測の精度や誤差を報告し、そのパフォーマンスに基づいてモデルをランク付けします。
Cochran-Q テストは、複数のモデルを比較するために「mlxtend」ライブラリに実装できますが、複数のモデルの比較にそのような手順を使用することは、機械学習の分野ではまだ比較的一般的ではないことに言及する価値があります。ただし、複数のモデルを比較して統計テストを実行する必要がある場合は、これらのオプションを検討し、講義ノートや関連文献を参照して詳細な情報を得ることができます。
機能の選択などの他の重要な概念を説明するのに十分な時間を確保するために、この講義ではこれらのトピックは広範囲には取り上げられないことに注意することが重要です。
複数の比較に関する問題の 1 つは、誤検知とも呼ばれるタイプ I エラーのリスクが増加することです。複数の検定を実行すると、帰無仮説が誤って棄却され、誤った結論が導かれる可能性が高くなります。これを軽減するために、研究者はボンフェローニ補正や誤検出率 (FDR) 制御などの調整方法を適用することがよくあります。
ボンフェローニ補正は、有意水準 (アルファ) を比較数 (k) で割る控えめな調整です。アルファプライム (α') として示されるこの調整された有意水準により、全体的な家族ごとの誤り率が確実に制御下に維持されます。ボンフェローニ補正を使用することにより、個々のペアワイズ テストが alpha/k レベルで実行されます。
もう 1 つの一般的な方法は FDR 制御です。これは、すべての拒否のうち誤った発見の割合を制御することに重点を置いています。 FDR 制御では、各比較の有意水準を下げるのではなく、個々の検定の p 値を調整して、全体的な誤検出率を制御します。この方法では、ボンフェローニ補正に比べて緩い調整が可能となるため、多数の比較が必要となる状況では有利です。
ボンフェローニ補正と FDR 制御は広く使用されていますが、それらには制限があることに注意することが重要です。ボンフェローニ補正は過度に保守的になる可能性があり、タイプ II エラーまたは偽陰性の可能性が増加する可能性があります。一方、FDR 制御は真の違いを検出する能力が高い可能性がありますが、誤検知のリスクも増加する可能性があります。
機械学習のコンテキストでは、目標がペアごとの差異を包括的に評価することなのか、それとも最高のパフォーマンスを発揮するモデルを特定することなのかを検討する価値があります。考えられるすべての組み合わせに対してペアごとのテストを実行すると、計算コストと時間がかかる場合があります。実際には、研究者は正式な統計テストを実施するよりも、パフォーマンス メトリックに基づいてモデルをランク付けし、最もパフォーマンスの高いモデルを特定することに重点を置くことがよくあります。
統計的テストはモデル比較の 1 つの側面にすぎないことを認識することも重要です。モデルを評価および選択する際には、解釈可能性、計算効率、ドメインの関連性、実用的な考慮事項などの他の要素も考慮する必要があります。
結論として、多重比較と統計テストはモデルのパフォーマンス比較に関する貴重な洞察を提供しますが、機械学習での実際の応用はあまり一般的ではありません。研究者は多くの場合、予測精度や誤差のレポート、視覚的な比較、パフォーマンス指標に基づくモデルのランク付けに依存しています。厳密な調査を実施し、結果を正確に解釈するには、基礎となる統計概念と多重比較の潜在的な問題を理解することが依然として不可欠です。
11.4 アルゴリズム比較のための統計的テスト (L11 モデル評価パート 4)
11.4 アルゴリズム比較のための統計的テスト (L11 モデル評価パート 4)
前回のビデオでは、統計的推論を使用して、特定のデータセットにすでに適合されているさまざまなモデルを比較する方法について説明しました。次に、アルゴリズムを比較できる統計テストを検討します。これは、異なるトレーニング セットまたはトレーニング サブセットを適用したモデルを比較できることを意味します。この説明では、アルゴリズム比較のための統計的推論とさまざまな統計的テストの適用に焦点を当てます。
アルゴリズムを比較するために利用できる統計的テストがいくつかありますが、それぞれに長所と短所があります。講義ノートでは、これらのテストのより詳細な説明と追加資料を見つけることができます。ここでは、テストの概要を説明し、いくつかの重要なポイントを取り上げます。
一般的なテストの 1 つはマクネマーのテストで、主にアルゴリズムではなくモデルを比較するために使用されます。誤検知率が低く、計算効率が高いため、言及する価値があります。ただし、アルゴリズムの比較のために特別に設計されたものではありません。
もう 1 つのテストは割合の差テストですが、残念ながら偽陽性率が高くなります。このテストでは複数のモデルをフィッティングする必要があるため、アルゴリズムの比較により適しています。ただし、複数のモデルのフィッティングが必要なため、計算コストが高くなる可能性があります。
K 分割交差検証 t 検定は、アルゴリズムの比較に使用されるもう 1 つの方法です。より正確な評価が得られますが、それでも偽陽性率がわずかに高くなります。この欠点にもかかわらず、これは依然として有用なテストです。
交差検証を繰り返す対応のある t 検定は、複数のモデルをフィッティングする必要があるもう 1 つのアプローチです。他のいくつかのテストよりも偽陽性率は低くなりますが、モデルのフィッティングが繰り返されるため、依然として計算量が多くなる可能性があります。
より高度な手法は 5x2 交差検証済みペア t 検定で、マクネマー検定と比較して偽陽性率が低く、統計的検出力がわずかに高くなります。これは、アルゴリズム比較に対するより堅牢なアプローチを提供します。さらに、5x2 相互検証されたペア f 検定など、さらなる改善をもたらす新しいアプローチもあります。
講義ノートでは、これらのテストやその他の統計的アプローチについてさらに詳しく説明します。さらに、これらのテストのほとんどを、講義資料に付属するライブラリである MLA extend で実装しました。マクネマーの検定、コクランの Q 検定、リサンプリングされた対応のある t 検定 (非推奨)、K 分割交差検証された対応のある t 検定、5x2 交差検証された組み合わせ t 検定などの実装を見つけることができます。
統計的テストは貴重な洞察を提供しますが、アルゴリズムを比較するための計算的または経験的アプローチもあります。次のビデオでは、実際のアプリケーションにおけるアルゴリズムの選択と比較の背後にある動機を探っていきます。たとえば、電子メール アプリケーションの開発や研究論文の推奨システムの作成などのシナリオで最も優れたアルゴリズムを特定するために、さまざまなアルゴリズムを比較したい場合があります。
結論として、アルゴリズムを比較するために利用できる統計的テストがいくつかあり、それぞれに長所と制限があります。これらのテストにより、異なるトレーニング セットを適用したアルゴリズム間のパフォーマンスの違いについての洞察が得られます。ただし、適切なテストを選択するときは、計算効率、偽陽性率、統計的検出力を考慮することが重要です。さらに、経験的アプローチは、アルゴリズム比較における統計的テストを補完できます。
11.5 アルゴリズム選択のためのネストされた CV (L11 モデル評価パート 4)
11.5 アルゴリズム選択のためのネストされた CV (L11 モデル評価パート 4)
さて、計算アルゴリズムの選択の話題に入りましょう。この説明では、ネストされた相互検証と呼ばれる手法に焦点を当て、今後のビデオでいくつかのコード例を検討します。ネストされた相互検証について詳しく説明する前に、以前に説明したいくつかの重要なポイントを簡単にまとめてみましょう。
以前、モデル選択の手段として 3 方向ホールドアウト法について説明しました。プロセスの簡単な概要は次のとおりです。まず、元のデータセットをトレーニング セットとテスト セットに分割します。次に、トレーニング セットをさらに小さなトレーニング セットと検証セットに分割します。トレーニング セットは、機械学習アルゴリズムおよび特定のハイパーパラメーター値とともに、モデルをトレーニングするために使用されます。さまざまなハイパーパラメータ設定を繰り返すことで、それぞれのパフォーマンスを持つ複数のモデルを取得します。最後に、検証セットで測定された最高のパフォーマンスを持つモデルを選択し、テスト セットでその最終パフォーマンスを評価します。モデルの選択中に導入される選択バイアスを軽減するには、独立したテスト セットを含めることが重要です。
ここで、理解を助けるために別の図を使用して概念を再検討してみましょう。この図では、3 つのシナリオを視覚化できます。最初のシナリオでは、モデルの調整を行わずに、トレーニング セットでトレーニングされ、テスト セットでテストされた単一のモデルを評価します。このアプローチは、モデルの調整が必要ない場合に適しています。
2 番目のシナリオでは、同じトレーニング セットとテスト セットで複数のモデルを評価します。各モデルは異なるハイパーパラメータ設定でトレーニングされ、テスト セットのパフォーマンスに基づいて最もパフォーマンスの高いモデルが選択されます。ただし、モデルの選択にテスト セットを複数回使用すると、選択のバイアスが生じる可能性があるため、このアプローチはあまり望ましくありません。
3 番目のシナリオは、前に説明した 3 方向ホールドアウト法に対応します。複数のモデルが、異なるハイパーパラメーター設定を使用してトレーニング セットでトレーニングされます。次に、検証セットを使用して最もパフォーマンスの高いモデルを選択し、その後テスト セットで評価します。このアプローチは、モデルのランク付けに別の検証セットを使用することで、選択のバイアスを軽減するのに役立ちます。
3 方向ホールドアウト法は効果的ですが、より良いアプローチは、前の説明で説明した k 分割相互検証です。この方法では、データを k 個のフォールドに分割し、各フォールドが順番に検証セットとして使用され、残りがトレーニング セットとして機能します。このアプローチは、データセットのサイズが制限されている場合に特に有益です。より大きなデータセットの場合、特にデータセットのサイズが一般的に大きくなり、モデルの収束などの追加の考慮事項が必要となる深層学習では、3 方向ホールドアウトが依然として実行可能なオプションになる可能性があります。
次に、ネストされた相互検証について説明します。これは、さまざまなアルゴリズムを比較することでさらに一歩前進します。 K 最近傍アルゴリズム、デシジョン ツリー、勾配ブースティング、ランダム フォレストなどのアルゴリズムを比較したいとします。各アルゴリズムはハイパーパラメータ調整を受けて、最適なモデルを選択します。相互検証手順に別のループを導入し、ネストされた相互検証が行われます。外側のループはモデルの評価を担当し、内側のループはハイパーパラメーターの調整に重点を置きます。この 2 段階の手順により、ネストされた相互検証は基本的に 2 つのネストされた k 分割相互検証で構成されるため、通常の k 分割相互検証よりも複雑になります。
このプロセスをより深く理解するために、元のデータセットから始めて図を見てみましょう。最終評価用に独立したテスト セットがあると想像してください。ただし、今のところはメインのトレーニング セットで十分です。 k 分割相互検証と同様に、指定された分割数 (この場合は 5 つとしましょう) でループを繰り返します。各反復で、データはトレーニング フォールドとテスト フォールドに分割されます。ただし、トレーニング フォールドのみでモデルをトレーニングし、テスト フォールドで評価するのではなく、次のステップに進みます。
次のステップでは、図の下部にあるようなトレーニング フォールドの 1 つを取得し、それをさらに小さなトレーニング セットと検証セットに分割します。小さいトレーニング セットは、さまざまなハイパーパラメータ設定でさまざまなモデルをトレーニングするために使用され、検証セットは最高のパフォーマンスのモデルを選択するために使用されます。
現在のトレーニングフォールドに対して内側のループが完了すると、対応するハイパーパラメーター設定を持つ選択されたモデルが得られます。次に、内側のループでは使用されなかった外側のループからのテストフォールドでこのモデルを評価します。
このプロセスは、外側のループの折り目ごとに継続されます。毎回、異なるフォールドがテストフォールドとして提供され、残りのフォールドはトレーニングと検証に使用されます。これにより、すべてのフォールドがテスト セットと検証セットの両方として使用され、各モデルが異なるデータ セットで評価されることが保証されます。モデルの最終的なパフォーマンスは、すべてのフォールドのパフォーマンスを平均することによって決定されます。
ネストされた相互検証は、より堅牢なパフォーマンスの推定値を提供することで、さまざまなアルゴリズムを比較するのに役立ちます。ネストされた相互検証プロセスを複数回繰り返すことで、より信頼性が高く安定したパフォーマンス推定値を取得できます。
要約すると、ネストされた相互検証は、モデル選択とハイパーパラメーター調整の利点を組み合わせた手法です。これにより、複数のデータのフォールドに対するパフォーマンスを評価し、ネストされた相互検証の反復に基づいて最適なモデルを選択することで、さまざまなアルゴリズムを比較できます。このアプローチは、選択バイアスを軽減し、アルゴリズムのパフォーマンスをより正確に推定するのに役立ちます。
次のビデオでは、コード例を検討して、ネストされた相互検証が実際にどのように実装されるかを示します。このシリーズの次のパートにご期待ください。
11.6 アルゴリズム選択用のネストされた CV コード例 (L11 モデル評価パート 4)
11.6 アルゴリズム選択用のネストされた CV コード例 (L11 モデル評価パート 4)
さて、ネストされた相互検証の背後にある概念について説明したので、コード例を詳しく見てみましょう。この例は、計算の観点からネストされた相互検証をより深く理解するのに役立ちます。さらに、アルゴリズムを比較するときに、クラス プロジェクトで役立つことがわかります。
まず、コード例は GitHub にあります。これらを「l11_code」という名前で通常のクラス リポジトリにアップロードしました。使用可能なノートブックは、「verbose_one」、「verbose_two」、「compact」の 3 つです。 3 つのノートブックはすべて同じ結果を生成しますが、実装アプローチが異なります。
「verbose_one」ノートブックでは、層別 k 分割法を手動で使用する、より手動的なアプローチを採用しました。一方、「verbose_two」ノートブックでは、cross_validate 関数を利用しました。最後に、「コンパクト」ノートブックでは、cross_val_score を使用しました。各ノートブックは、分析時に異なるレベルの情報を提供します。現時点では、層別 k 分割オブジェクトについてはすでによく知っているため、「verbose_one」ノートブックから始めることをお勧めします。
先に進む前に、選択した実装アプローチは結果に大きな影響を与えないことに言及する価値があります。ただし、「コンパクト」ノートブックの使用は、ハイパーパラメーター セットに関する情報が少ないため、お勧めしません。後ほど、次の内容について説明した後で、ハイパーパラメータ セットがどのように見えるかを簡単に説明します。
ここで、ネストされた相互検証への手動アプローチを示す「verbose_one」ノートブックを調べてみましょう。このノートブックでは、ネストされた相互検証とその機能について説明します。このプロセスには、内側のループを実行する外側のループが含まれます。外側のループごとに、フォールドはトレーニング部分とテスト部分に分割されます。次に、トレーニング部分が内側のループに渡され、ハイパーパラメーターの調整またはモデルの選択が実行されます。これは、前の講義で学んだように、グリッド検索を使用して実現できます。
ノートブックには、必要なライブラリやモジュールのインポートなど、必要なセットアップ手順が記載されています。これには、内部ループでのモデル調整のためのグリッド検索、層別 k 分割相互検証を使用したデータセットの分割、パイプライン、標準スカラー、および比較する分類器が含まれます。この例では、計算の実行可能性を維持するために 5000 個のトレーニング サンプルで構成される、より小さいバージョンの「emnes」データセットを使用しています。さらに、データセットの 20% がテスト データとして確保され、ネストされた相互検証のパフォーマンスとテスト セットのパフォーマンスを比較できるようになります。
次に、使用する分類器を初期化します。最初の分類器はロジスティック回帰分類器、具体的には多項ロジスティック回帰分類器です。この分類器は、深層学習ではソフトマックス回帰としても知られています。この授業では扱っていませんが、「統計 453」で取り上げます。この分類器を使用する理由は、より広範囲のアルゴリズムを比較できるようにするためです。さらに、他のアルゴリズムと比較して比較的高速です。私たちが検討するもう 1 つの比較的高速な分類器は、サポート ベクター マシン、特に線形分類器です。これらの分類子を含めることで、さまざまなハイパーパラメーター設定を比較することを目的としています。
デシジョン ツリー自体やランダム フォレスト分類器などのデシジョン ツリー ベースの分類器はパラメーター スケーリングを必要としないことに注意することが重要です。したがって、他の分類子に対してのみスケーリングを実行します。これを容易にするために、標準のスケーラーとそれぞれの分類子を組み合わせるパイプラインを使用します。したがって、パイプラインは分類器そのものとみなすことができます。分類子ごとに、検索するハイパーパラメータ グリッドを定義します。これらのグリッドには、各分類子に対して調整するパラメーターが含まれています。たとえば、ロジスティック回帰では、正則化の重みペナルティとさまざまな正則化の強度を考慮します。最近傍では、最近傍の数と距離を考慮する必要があります。
「verbose_one」ノートブックでは、分類子とそれぞれのハイパーパラメーター グリッドを定義した後、ネストされた相互検証のための外側と内側のループの設定に進みます。
外側のループでは、層化された k 分割相互検証を使用して、データセットをトレーニング セットとテスト セットに分割します。フォールドを反復処理し、フォールド インデックス、トレーニング インデックス、テスト インデックスを追跡します。フォールドごとに、トレーニング データはさらに内側のループのトレーニング セットと検証セットに分割されます。
内側のループは、グリッド検索を使用してモデルの選択またはハイパーパラメーターの調整を実行します。各分類子のハイパーパラメータ グリッドを反復処理し、外側のループからのトレーニング セットと検証セットを使用して、各組み合わせに最適なハイパーパラメータを見つけます。グリッド検索では、指定されたハイパーパラメーター グリッドを徹底的に検索し、相互検証を使用して各組み合わせのパフォーマンスを評価します。
内側のループが完了すると、各分類器の最適なハイパーパラメーターが記録されます。次に、選択したモデルのパフォーマンスが、最初に用意されたテスト セットで評価されます。精度、適合率、再現率、F1 スコアなどの評価指標が分類子ごとに計算されます。
最後に、ネストされた相互検証とテスト セットの評価の結果が表示され、さまざまな分類子のパフォーマンスとそのハイパーパラメーター設定を比較できるようになります。
「verbose_two」ノートブックと「compact」ノートブックは、それぞれcross_validate関数とcross_val_score関数を使用したネストされた相互検証の代替実装を提供することに注意することが重要です。これらの関数は相互検証ステップの一部を自動的に処理し、コードを簡素化します。ただし、「verbose_one」ノートブックに比べて提供される情報の詳細が少ない場合があります。
この概要が、コード例とネストされた相互検証の実装方法を理解するのに役立つことを願っています。概念をより深く理解するために、ノートブックを自由に探索し、さまざまなデータセットや分類器を試してみてください。
12.0 講義の概要 (L12 モデル評価 5: パフォーマンス メトリック)
12.0 講義の概要 (L12 モデル評価 5: パフォーマンス メトリック)
こんにちは、みんな、
皆さんが素晴らしい感謝祭休暇を過ごし、学期の最後の数週間に向けてリラックスして充電できたことを願っています。学期が終わりに近づいているのは残念ですが、特にプロジェクトのプレゼンテーションなど、楽しみにしていることがまだたくさんあります。このクラスで取り上げた内容に基づいて皆さんが構築したものを見て、機械学習の知識の創造性と応用を目の当たりにするのを楽しみにしています。
今後 2 週間、残りの時間を一緒に過ごしたいと考えています。今週はモデルの評価について取り上げ、5 つのパフォーマンスと評価の指標に焦点を当てます。目標は、分類の精度とエラーだけを超えて視野を広げることです。機械学習モデルを効果的に評価するのに役立つさまざまな指標を検討します。このトピックにはそれほど時間はかからないと予想されますので、追加の時間があれば、機能の選択についても触れたいと思います。このトピックについて詳しく説明する時間がないかもしれないと思ったので、以前にこのトピックに関する自習用の資料をいくつか共有しました。オンライン学習によってもたらされる課題に留意し、短期間にあまりにも多くのトピックで圧倒されないようにしたいと考えています。皆さんは、12 月 4 日の宿題 3 や、12 月 6 日のビデオ形式でのプロジェクト プレゼンテーションなど、やるべきことがたくさんあると思います。
プロジェクトのプレゼンテーションに関しては、来週、プレゼンテーションを埋め込むことができる Canvas ページを作成します。さらに、最もクリエイティブなプロジェクト、最も優れた口頭プレゼンテーション、最も優れたビジュアライゼーションなどのプロジェクト賞を投票するためのクイズ形式を設定します。これらの賞はあなたの投票によって決定されます。それがプロセスに楽しみの要素を加えると信じています。来週に向けてすべてを整理します。つまり、講義はありません。ただし、プロジェクトのプレゼンテーションを全員に視聴することを強くお勧めします。プレゼンテーションに関するアンケートにご回答いただくとポイントが付与されます。皆さんは大変な努力をしているので、お互いのプレゼンテーションを観るのも公平です。 Piazza でディスカッションしたり質問したり、交流が可能な他のプラットフォームを探索したりできます。この取り組みを促進するための最善の方法を検討します。
今日の講義に入る前に、授業の評価について思い出していただきたいと思います。私たちの部門は、学期がどのように進んだかについてフィードバックを提供するようお願いしました。今年はオンライン形式によりこれまでとは異なった年となったので、皆様からの洞察は貴重です。 Canvas 上のコース評価へのリンクを掲載します。お手数ですがご記入いただけますと幸いです。ただし、完了しなくてもペナルティはないことを強調したいと思います。これは単にフィードバックを収集するためのリクエストです。
それでは、パフォーマンスと評価指標に関する講義 5 から始めましょう。私たちは、過学習と過小学習を理解するためのバイアス分散分解から始めて、モデル評価において長い道のりを歩んできました。データセット分割のホールドアウト法とその落とし穴、正規近似法を使用した信頼区間の構築、ホールドアウトやブートストラップの繰り返しなどのリサンプリング手法、モデル選択のための相互検証について調査しました。先週、ネストされた相互検証を含む、モデルとアルゴリズムを比較するための統計的テストについて説明しました。今日は評価指標に焦点を当てます。
まず、先週取り上げたマクネマー混同行列とは異なる混同行列について説明します。混同行列から、偽陽性率、真陽性率などの指標を導き出すことができます。これは、受信機の動作特性を詳しく調べるときに役立ちます。さらに、精度、再現率、F1 スコア、マシューズ相関係数、バランスのとれた精度についても調査します。後者は、データセット内にクラスの不均衡が存在する場合に特に役立ちます。最後に、すでにマルチクラス分類と互換性があるバランスの取れた精度を除いて、バイナリ メトリクスをマルチクラス設定に拡張することに取り組みます。
次のビデオでは、混同マトリックスについての説明を始めます。
12.1 混同マトリックス (L12 モデル評価 5: パフォーマンス メトリック)
12.1 混同マトリックス (L12 モデル評価 5: パフォーマンス メトリック)
まず、混同行列とその重要性について説明します。講演の中で講演者は、学期末で忙しい、Python 機械学習の本で取り上げているなどの理由で講義ノートを作成しなかったと話していました。彼らは、詳細については本の第 6 章を参照することを提案しました。
混同行列は、機械学習分類器のパフォーマンスを評価するために使用されるツールです。これは、教師あり分類問題における予測されたクラス ラベルと実際のクラス ラベルの比較を示しています。マトリックスは、分類器のパフォーマンスと、どのクラス ラベルが混乱する傾向があるかを理解するのに役立ちます。
混同行列は通常、分割行列とも呼ばれる 2 行 2 列の形式で表されます。これは、真陽性 (TP)、偽陰性 (FN)、偽陽性 (FP)、および真陰性 (TN) の 4 つのコンポーネントで構成されます。 「ポジティブ」クラスは予測したい対象のクラスを指し、「ネガティブ」クラスはその他のクラスを指します。
真陽性 (TP) は陽性クラスに属するインスタンスであり、分類器によってそのように正しく識別されます。一方、偽陰性 (FN) は、陰性として誤って予測された陽性クラスのインスタンスです。
同様に、偽陽性 (FP) は、陽性であると誤って予測された陰性クラスのインスタンスです。最後に、真陰性 (TN) は、陰性として正しく識別された陰性クラスのインスタンスです。
これらのコンポーネントを分析することで、さまざまなパフォーマンス指標を計算できます。講義では、分類精度と分類誤差という 2 つの一般的な指標について言及しました。分類精度は、真陽性と真陰性の合計を予測の総数で割ることによって計算されます。一方、分類誤差は 1 から精度を引いたものとして計算されます。
次に講演者は、乳がんの診断に関する情報が含まれるウィスコンシン州の乳がんデータセットを紹介しました。このデータセットには、各患者の ID 番号や、デジタル化されたがん細胞核の画像から抽出された特徴など、さまざまな列が含まれていると彼らは説明しました。
分類用のデータセットを準備するために、講演者は scikit-learn のラベル エンコーダーを使用して、文字列クラス ラベル (悪性および良性) を整数ラベル (0 および 1) に変換しました。彼らはデータセットをトレーニング セット (80%) とテスト セット (20%) に分割しました。
次に、講演者は、k 最近傍分類器を使用して混同行列をプロットする方法をデモンストレーションしました。彼らは、KNN 分類器の特徴スケーリングの重要性を強調し、前処理のための標準スカラーとパイプラインの使用について言及しました。
混同行列を視覚化するために、講演者は mlxtend ライブラリのconffusion_matrix 関数を使用しました。結果の混同行列は matplotlib を使用して表示され、右下隅に真陽性、左上隅に真陰性が表示されました。
さらに、講演者は、show_absolute や show_normed など、confusion_matrix 関数のいくつかのオプションのパラメーターについても言及しました。これらのパラメーターを使用すると、絶対数や正規化された値の表示など、視覚化をカスタマイズできます。
最後に、講演者は、真陽性率、偽陽性率、偽陰性率、真陰性率など、混同行列から導出される指標について説明しました。これらのメトリクスは分類器のパフォーマンスを評価するために重要であり、以降の説明で受信者オペレータ特性 (ROC) 曲線に関連してさらに詳しく説明します。
全体として、混同行列は分類器のパフォーマンスに関する貴重な洞察を提供し、クラス ラベルを正しく予測する能力を評価できるようになります。
12.2 精度、再現率、および F1 スコア (L12 モデル評価 5: パフォーマンス メトリック)
12.2 精度、再現率、および F1 スコア (L12 モデル評価 5: パフォーマンス メトリック)
前回のビデオでは、分類モデルを評価するための便利なツールである混同行列について説明しました。これにより、真陽性、偽陽性、真陰性、および偽陰性の数を計算できます。真陽性率と真陰性率についても調査しました。ここで、精度、再現率、F1 スコアという 3 つの追加の指標を導入して理解を深めます。
正確さから始めましょう。精度は、真陽性の数を真陽性と偽陽性の合計で割ることによって計算されます。真陽性は陽性として正しく予測されたインスタンスであり、偽陽性は陽性として誤って予測されたインスタンスです。たとえば、スパム分類のコンテキストでは、真陽性は正しくスパムとして識別された電子メールを表しますが、偽陽性はスパムではない電子メールが誤ってスパムとして分類されたことを指します。精度は肯定的な予測の精度を測定し、「予測されたスパム メールのうち実際にスパムであるのは何通か?」という質問に答えます。
次に、真の陽性率とも呼ばれる再現率です。再現率は、真陽性の数を真陽性と偽陰性の合計で割ることによって計算されます。真陽性は陽性として正しく予測されたインスタンスを表し、偽陰性は陰性として誤って予測されたインスタンスを表します。再現率は、実際の陽性例のうち何件が正しく陽性として識別されたかを示します。言い換えれば、肯定的なインスタンスを捕捉する際の分類子の有効性を測定します。
もう 1 つの重要な指標は、適合率と再現率を 1 つの値に組み合わせた F1 スコアです。これは、精度と再現率の調和平均を取得し、係数 2 で重み付けして計算されます。 F1 スコアは、精度と再現率の両方を考慮して、分類器のパフォーマンスのバランスの取れた尺度を提供します。これは、精度と再現率の両方で優れたパフォーマンスを示すモデルを評価したい場合に特に役立ちます。
これらのメトリックはすべて 0 から 1 までの範囲にあり、1 が可能な限り最良の値です。用語に関しては、感度と特異度は計算生物学でより一般的に使用され、精度と再現率は情報技術、コンピューター サイエンス、機械学習でよく使用されます。論文や研究で使用する指標を選択するときは、特定の分野の規則を考慮することが重要です。
精度と再現率をよりよく理解するために、Wikipedia の役立つ図を使用して視覚化してみましょう。この視覚化では、左側のすべてをポジティブ クラス (スパム メールなど)、右側のすべてをネガティブ クラスとみなします。適合率は、真陽性をすべての予測陽性で割ったもので表され、再現率は、真陽性をすべての実際の陽性で割ったもので表されます。
さらに、感度と特異度という 2 つの一般的に使用される指標があります。感度は再現率の別の用語であり、真の陽性率を表します。一方、特異度は、真陰性の数を陰性の数で割ったものです。これは感度を補完し、ネガティブな事例の正確な識別に焦点を当てます。
ここで、マシューズの相関係数について説明します。当初は生物学におけるタンパク質の二次構造予測を評価するために設計されたこの係数は、真のラベルと予測されたラベル間の相関を測定します。これは、ピアソンの相関係数に相当するバイナリ分類と考えることができます。ピアソンの r と同様に、マシューズの相関係数の範囲は -1 から 1 で、1 は真のラベルと予測されたラベルが完全に一致することを示します。これは、一方のクラスの例が他方のクラスよりも大幅に多い、不均衡なクラスの問題に特に役立ちます。
これらのメトリクスを計算するには、precision_score、recall_score、f1_score、matthews_corrcoef など、scikit-learn によって提供される関数を使用できます。これらの関数は、真のラベルと予測されたラベルを入力として受け取り、対応するメトリック値を返します。あるいは、これらのメトリクスをグリッド検索やハイパーパラメータ調整で使用し、必要なメトリクスを文字列引数として指定することもできます。
複数クラスの問題で、適合率、再現率、F1 スコア、マシューズ相関係数などの指標を使用する場合は、回避策を適用する必要があります。 1 つのアプローチは、scikit-learn の make_scorer 関数を使用することです。この関数を使用すると、特定のメトリックのスコアリング オブジェクトを作成できます。
たとえば、マルチクラス問題に F1 スコアを使用する場合は、make_scorer を使用してスコアラー オブジェクトを作成し、平均パラメーターを「マクロ」または「マイクロ」に設定できます。 「マクロ」オプションはクラスごとに個別にメトリクスを計算して平均を取得しますが、「マイクロ」オプションはすべてのクラスにわたる真陽性、偽陰性、および偽陽性の合計数を考慮します。
「マクロ」平均と「ミクロ」平均のどちらを選択するかは、問題と分析の特定の要件によって異なることに注意することが重要です。
これらのメトリクスを個別に使用するだけでなく、グリッド検索やハイパーパラメータ調整に適用することもできます。分類精度をスコアリング メトリックとして使用する代わりに、グリッド検索プロセスで文字列引数として目的のメトリックを指定できます。これにより、選択したメトリクスに基づいてモデルを最適化し、精度だけに依存するのではなく、より包括的な評価を提供できるようになります。
マルチクラスの問題を処理し、これらのメトリクスを適用する場合、平均化オプションを理解し、特定のニーズに基づいて適切な方法を選択することが重要であることに注意してください。
要約すると、このビデオでは、精度、再現率、F1 スコア、マシューズ相関係数など、分類モデルの追加の評価指標について説明しました。これらのメトリックは、真陽性、偽陽性、偽陰性などの要素を考慮して、分類器のパフォーマンスに関する貴重な洞察を提供します。これらのメトリクスを使用すると、モデルのパフォーマンスをより深く理解し、分析や研究において情報に基づいた意思決定を行うことができます。次のビデオでは、バランスの取れた精度、受信機動作特性 (ROC) 曲線、バイナリ メトリックのマルチクラス設定への拡張について詳しく説明し、分類タスクにおける評価手法の知識を広げます。
12.3 バランスの取れた精度 (L12 モデル評価 5: パフォーマンス メトリック)
12.3 バランスの取れた精度 (L12 モデル評価 5: パフォーマンス メトリック)
さて、バランスの取れた精度の概念を詳しく見てみましょう。これは、分類タスクでクラスの不均衡の問題を扱うときに特に役立ちます。クラスの不均衡は、あるクラスに別のクラスよりもラベルの数が大幅に多い場合に発生します。これを説明するために、アイリスの花、具体的にはアイリス セトサ、アイリス バーシカラー、アイリス バージニカを例にして、複数クラスの分類問題を考えてみましょう。
通常、混同行列の対角値を合計し、それを例の総数で割ることによって予測精度を計算します。この例では、クラス 0 に 3 つのラベル、クラス 1 に 769 のラベル、クラス 2 に 18 のラベルがあります。ご覧のとおり、クラスには不均衡があり、クラス 1 には他の 2 つのクラスに比べてサンプルの数が多くなっています。通常の精度を計算すると、主にクラス 1 のサンプルの数が多いことが影響して、約 80% になります。
ただし、特にすべてのクラスでバランスの取れた予測を達成することに重点を置く必要がある場合、通常の精度ではモデルのパフォーマンスを正確に表現できない可能性があります。このような場合、バランスの取れた精度メトリクスは、各クラスに等しい重みを与えることで、より公平な評価を提供することを目的としています。
バランスの取れた精度を計算するには、各クラスを正のクラスとみなして、残りのクラスを負のクラスにマージします。たとえば、最初にクラス 0 に注目してみましょう。クラス 0 をポジティブ クラスとして扱い、クラス 1 とクラス 2 をネガティブ クラスとして組み合わせます。混同行列を分析することで、クラス 0 の真陽性、真陰性、偽陽性、および偽陰性を判断できます。このプロセスはクラスごとに繰り返され、個別の二項分類問題が作成されます。
Python では、mlxtend ライブラリの activity_score 関数を使用して、バランスの取れた精度を計算できます。この関数は scikit-learn の activity_score と同様に動作しますが、バイナリ分類精度を計算する追加機能が含まれています。メソッドをバイナリとして指定し、正のラベルを指定すると、各クラスのバイナリ精度を計算できます。さらに、平均パラメータを「マクロ」または「ミクロ」として使用して、クラスごとの平均精度を直接計算できます。
提供されている例では、混同行列が再作成され、通常の精度、クラスごとの平均精度 (平衡精度)、およびバイナリ精度が計算されます。バイナリ精度は、陽性ラベルとして個別に扱われる各クラスに対応します。バイナリ精度を平均化することで、バランスの取れた精度が得られます。この場合、平衡精度は約 86% になります。
バランスのとれた精度、つまりクラスごとの平均精度は、クラスの不均衡がある複数クラスの問題における分類器のパフォーマンスの公正な評価を提供します。各クラスを平等に考慮し、すべてのクラスを正確に予測するモデルの能力についての洞察を提供します。
次に、機械学習におけるもう 1 つの重要な評価指標である受信者動作特性 (ROC) 曲線について説明します。 ROC 曲線は、バイナリ分類器のパフォーマンスをグラフで表現したもので、さまざまな分類しきい値での真陽性率 (TPR) と偽陽性率 (FPR) の間のトレードオフに関する貴重な洞察を提供します。
ROC 曲線を理解するために、まず真陽性率 (TPR) と偽陽性率 (FPR) を定義しましょう。 TPR は感度または再現率とも呼ばれ、分類器によって正しく識別される実際の陽性インスタンスの割合を測定します。これは、真陽性の数を真陽性と偽陰性の合計で割ったものとして計算されます。
TPR = 真陽性 / (真陽性 + 偽陰性)
一方、偽陽性率 (FPR) は、誤って陽性として分類された実際の陰性インスタンスの割合を測定します。これは、偽陽性の数を偽陽性と真陰性の合計で割ったものとして計算されます。
FPR = 偽陽性 / (偽陽性 + 真陰性)
ROC 曲線を構築するには、分類子の予測が分類スコアまたは確率に従ってランク付けされます。分類しきい値を変更することで、異なる TPR 値と FPR 値を生成できます。すべてのインスタンスを陽性として分類するしきい値 (TPR が 1、FPR が 1 となる) から始めて、徐々にしきい値を下げ、陽性として分類されるインスタンスの数を減らし、その結果、TPR と FPR の両方を減らします。
各しきい値の FPR に対して TPR をプロットすると、ROC 曲線が得られます。この曲線は、さまざまな操作点にわたる分類器のパフォーマンスを示しています。理想的なシナリオは、左上隅に沿った曲線であり、すべてのしきい値で高い TPR と低い FPR を示しています。
ROC 曲線に加えて、そこから導き出されるもう 1 つの重要な指標は、ROC 曲線下面積 (AUC-ROC) です。 AUC-ROC は、ROC 曲線の下の面積を計算することにより、分類器の全体的なパフォーマンスを定量化します。完全な分類器の AUC-ROC は 1 で、FPR 0 を維持しながら TPR 1 を達成していることを示します。逆に、ランダム分類器の AUC-ROC は 0.5 であり、パフォーマンスは偶然に過ぎません。
ROC 曲線と AUC-ROC は、選択した分類しきい値に関係なく、バイナリ分類器のパフォーマンスの包括的な分析を提供します。これにより、異なる分類子または同じ分類子の異なる設定を比較できるため、モデルの選択について十分な情報に基づいた決定が可能になります。
Python で ROC 曲線や AUC-ROC を計算するには、scikit-learn などのさまざまなライブラリが便利な関数を提供しています。これらの関数は、真のラベルと予測された確率またはスコアを入力として受け取り、FPR、TPR、ROC 曲線のしきい値、および AUC-ROC 値を返します。
要約すると、ROC 曲線と AUC-ROC は、バイナリ分類器のパフォーマンスを評価および比較するための貴重なツールです。これらは、さまざまな分類しきい値における真陽性率と偽陽性率の間のトレードオフに関する洞察を提供し、モデル選択における情報に基づいた意思決定を可能にします。
12.4 受信機の動作特性 (L12 モデル評価 5: パフォーマンス メトリック)
12.4 受信機の動作特性 (L12 モデル評価 5: パフォーマンス メトリック)
議論のテーマは、受信機動作特性 (ROC) 曲線を中心に展開されます。この曲線は受信者動作特性 (ROC) 曲線としても知られ、その複雑な名前のため早口言葉のように聞こえるかもしれません。 「受信機動作特性」という用語は、無線方向測距などの技術を扱うレーダー受信機オペレーターの分野に由来しています。当初はこのような文脈で使用されていました。ただし、真陽性率と偽陽性率という 2 つの重要な指標を組み合わせることができるため、機械学習の分野で人気を集めています。
ROC 曲線は、予測閾値を変化させることによって構築されます。これを説明するために、例を考えてみましょう。二項分類問題には、クラス 0 とクラス 1 の 2 つのクラスがあります。単純な二項分類の決定を行うのではなく、クラスのメンバーシップ確率を各例に割り当てることができます。この確率は、ロジスティック回帰、k 最近傍法、決定木などのさまざまな分類子を使用して決定できます。たとえば、k 最近傍の場合、クラス メンバーシップ確率は、近傍内での 1 つのクラスの他のクラスに対する出現の比率として計算できます。
k 最近傍アルゴリズムを使用した例を考えてみましょう。一連の近傍があり、特定の例のクラス メンバーシップ確率を決定したいとします。 5 つの最近傍のうち、3 つがクラス 0 に属し、2 つがクラス 1 に属していることが観察される場合、クラス 0 のクラス メンバーシップ確率は 3/5 (0.6) として計算され、クラス 1 のクラス メンバーシップ確率は 2/5 として計算されます。 、これは 0.4 です。これらの確率は、しきい値に基づいて調整できます。
しきい値は、クラス 0 とクラス 1 の間で決定を下すポイントを表します。たとえば、しきい値を 0.5 に設定すると、0.5 を超える確率はクラス 1 に分類され、0.5 を下回る確率はクラス 0 に分類されます。ロジスティック回帰では、通常、0.5 がしきい値として使用されます。ただし、しきい値は任意であり、真陽性率、偽陽性率、またはその他の基準に合わせて最適化するかどうかなどの目的によって異なります。しきい値の選択には、同点の場合に下位クラスを選択するなどのタイブレーカー ルールも含まれます。
受信者動作特性 (ROC) 曲線は、y 軸に真陽性率 (TPR) を、x 軸に偽陽性率 (FPR) をプロットすることにより、分類器のパフォーマンスを示します。曲線上の各点は、異なるしきい値に対応します。しきい値を変更すると、真陽性率と偽陽性率の観点から分類器のパフォーマンスがどのような影響を受けるかを観察できます。曲線は、さまざまなしきい値に対する分類子の感度を示しており、その動作を包括的に分析できるようになります。
精度の観点からは、通常、0.5 などの固定しきい値を使用してクラス割り当てを決定します。ただし、受信機の動作特性曲線については、しきい値を変更することで分類器の感度を調査します。これにより、さまざまなしきい値が偽陽性率と真陽性率に与える影響を評価できます。曲線には、0.3、0.4、0.5、0.6 などのさまざまなしきい値に対応するさまざまな点が表示されます。曲線上の各点は、特定のしきい値に対する分類器のパフォーマンスを表します。
ここで、しきい値の概念と、そのクラス メンバーシップ確率との関係を詳しく見てみましょう。前に、X 軸上のフィーチャとシフトされる決定境界を示す図を見ました。ただし、これは理解を助けるための抽象化にすぎません。実際には、X 軸はクラスのメンバーシップ確率を表します。
では、中断したところから続けて、コード スニペットについてさらに説明します。クラス 1 の確率を計算した後、scikit-learn の roc_curve 関数を使用して、さまざまなしきい値の偽陽性率 (fpr) と真陽性率 (tpr) を計算します。 roc_curve 関数は、真のラベル (y_true) と予測確率 (y_scores) を入力として受け取り、fpr、tpr、およびしきい値を返します。
次に、roc_auc_score 関数を使用して、受信機動作特性曲線の下の面積 (AUC-ROC) を計算します。このメトリクスは、考えられるすべてのしきい値にわたる分類子のパフォーマンスを要約する単一の値を提供します。 AUC-ROC が高いほど、分類パフォーマンスが優れていることを示します。トレーニング セットとテスト セットの両方の AUC-ROC を個別に計算します。
最後に、Matplotlib を使用して ROC 曲線をプロットします。プロットでは、トレーニング セットの ROC 曲線が青色、テスト セットの ROC 曲線がオレンジ色で示されています。また、よりわかりやすく解釈するために、プロットにラベルと凡例を追加します。
ROC 曲線を視覚化し、AUC-ROC を計算することで、分類器のパフォーマンスを評価し、トレーニング セットとテスト セット間で比較できます。 AUC-ROC が 1 に近い場合、真陽性率が高く、偽陽性率が低い優れた分類器であることを示します。一方、AUC-ROC が 0.5 に近い場合は、分類器がランダムであるか非効果的であることを示唆しています。
要約すると、このコード スニペットは、受信者動作特性 (ROC) 曲線と曲線下面積 (AUC) をバイナリ分類問題の評価指標として使用する方法を示しています。 ROC 曲線は、さまざまな予測しきい値での真陽性率と偽陽性率の間のトレードオフを視覚化するのに対し、AUC-ROC は分類器のパフォーマンスを定量化する単一の値を提供します。
13.0 特徴選択の概要 (L13: 特徴選択)
13.0 特徴選択の概要 (L13: 特徴選択)
こんにちは、みんな!皆さんが充実した学期を過ごし、この授業から貴重な知識を得られたことを願っています。私たちのほとんどにとって、今学期は非常に内容の濃いものだったことは理解しています。そのため、追加のコンテンツで皆さんを圧倒して、これ以上のストレスを与えたくありませんでした。ただし、シラバスで約束した一部のトピックをカバーできなかったことをお詫びします。それを補うために、今日から冬休み中のボーナス講義をいくつか用意しました。
この一連のビデオでは、次元削減、特に特徴選択と特徴抽出という 2 つの方法に焦点を当てます。これらのテクニックは非常に便利であり、理解することが重要です。今日の講義では、機能の選択について詳しく説明し、機能の仕組み、機能の選択が不可欠な理由、および実際のアプリケーションについて探っていきます。次の一連のビデオでは、別のアプローチとして特徴抽出について説明します。
特徴選択と特徴抽出の詳細を掘り下げる前に、次元削減の概念とそれが重要である理由について簡単に説明します。次元削減は、データセット内のフィーチャの数を減らすことを目的としています。たとえば、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅という 4 つの特徴で構成されるよく知られたアヤメのデータセットについて考えてみましょう。特徴の選択では、がく片の幅や花弁の長さなど、機械学習アルゴリズムで使用するこれらの特徴のサブセットを選択します。一方、特徴抽出には、線形変換などの手法を使用して新しい特徴を作成することが含まれます。主成分分析 (PCA) は、複数の特徴をより小さな特徴空間に結合する手法の 1 つです。
この講義シリーズでは、データセットから元の特徴を選択する特徴の選択に主に焦点を当てます。一般に、次元削減には、より小さな特徴空間の作成が含まれます。さて、なぜこれらのより小さな次元の特徴空間を気にするのでしょうか?いくつかの理由を調べてみましょう。
次元性の呪い: 機械学習の分類器は、特徴の数が増えると苦戦することがよくあります。特に K 最近傍アルゴリズムやデシジョン ツリーなどのアルゴリズムでは、過剰適合が発生する可能性があります。機能セットを減らすと、そのようなアルゴリズムのパフォーマンスを向上させることができます。
計算効率: 多数の特徴を含む大規模なデータセットの処理には、計算コストがかかる場合があります。機能セットを減らすことで、予測パフォーマンスを犠牲にすることなく計算パフォーマンスを向上させることができます。
データ収集が容易になる: 場合によっては、より単純な機能サブセットでも、より大きな機能サブセットと比較して同様のパフォーマンスが得られることがあります。これにより、特定の機能の収集が安価になったりアクセスしやすくなったりするため、データ収集が容易になり、コスト効率が向上します。
ストレージスペース: 膨大な量のデータを保存することは困難であり、費用がかかる場合があります。特徴抽出および選択技術は、データの次元を削減し、ストレージをより実現可能かつ効率的にするのに役立ちます。
解釈可能性: 機能を理解すると、複雑な機械学習アルゴリズムを解釈するのに役立ちます。これは、顧客のクレジット カードの申し込みなど、自動化システムによる意思決定の根拠を顧客が知る権利があるなど、説明が必要な分野では特に重要です。
要約すると、次元削減は、特徴選択と特徴抽出という 2 つのサブ問題に分割できます。今日の講義では、特徴の選択に焦点を当てます。次回の講義では、特徴抽出についてさらに詳しく説明します。
特徴選択の重要性を説明するために、ヤツメウナギの魚を研究している生化学者との共同プロジェクトの例を紹介しましょう。目標は、五大湖のウミヤツメウナギの個体数を制御するための連邦政府のモン受容体阻害剤を見つけることでした。どの分子の特徴が重要であるかを理解するために特徴の選択を使用しました。機械学習分類器を使用してさまざまな特徴サブセットのパフォーマンスを評価することにより、硫黄酸素の数などの特定の単純な特徴が非常に有益であることがわかりました。さらに特徴を追加してもパフォーマンスは大幅に向上しませんでした。これは、これらの単純な特徴が分類タスクにとって最も重要であることを示しています。この知識により、私たちは何百万もの分子をスクリーニングし、最終的に有望な阻害を示す化合物を見つけることができました。
フェロモン信号では、選択された特徴だけをかなりの割合で使用します。この例では、望ましい結果に寄与する主要なコンポーネントまたは特性を特定する際の機能選択の威力を示します。
ここで、機能の選択とその関連性をさらに詳しく見てみましょう。特徴選択は次元削減のサブカテゴリであり、関連性のある意味のある情報を保持しながら、データセット内の特徴または変数の数を削減することを目的としています。最終的な目標は、データセットを簡素化し、計算効率、解釈可能性、予測パフォーマンスを向上させることです。
機能の選択が重要かつ有益である理由はいくつかあります。まず、次元の呪いが機械学習に課題をもたらします。特徴の数が増えると、特定のアルゴリズムのパフォーマンスが低下したり、過学習が起こりやすくなる場合があります。機能セットを減らすことで、これらの問題を軽減し、特に K 最近傍法やデシジョン ツリーなどのアルゴリズムのモデルの精度と信頼性を向上させることができます。
次に、大規模なデータセットを扱う場合、計算効率が重要な考慮事項になります。機械学習モデルのトレーニングとテストにかかる計算コストは、特徴の数に応じて増加します。関連する機能のサブセットを選択することで、パフォーマンスを犠牲にすることなく計算負荷を軽減し、プロセスを迅速化することができます。
さらに、特徴を選択することでデータ収集が容易になります。場合によっては、簡略化された特徴のサブセットが、より大きな特徴セットと比較して同様の予測パフォーマンスを提供できることがあります。これは、データ収集が困難またはコストがかかる場合に特に役立ちます。たとえば、医療診断のコンテキストでは、正確な結果が得られる、簡単に取得できる特徴を特定すると、リソースが節約され、プロセスが患者にとってよりアクセスしやすくなります。
さらに、機能の選択はストレージスペースの最適化に役立ちます。データ生成の急激な増加に伴い、大規模なデータセットの保存と管理が重大な懸念事項になっています。関連する機能を選択することで、全体的なパフォーマンスやデータから得られる洞察を損なうことなく、ストレージ要件を削減できます。
さらに、特に自動化されたシステムや規制されたドメインを扱う場合には、解釈可能性が重要な役割を果たします。特徴の選択は、最も影響力があり解釈可能な特徴を特定するのに役立ち、意思決定プロセスのより良い理解と説明を可能にします。法的または倫理的要件により決定の説明が求められる状況では、機能を選択することでコンプライアンスと説明責任を促進できます。
要約すると、次元削減、特に特徴選択はさまざまな領域で多くの利点をもたらします。最も有益な特徴を選択することで、次元の呪いを軽減し、計算効率を向上させ、データ収集を簡素化し、記憶域を最適化し、解釈可能性を高めることができます。これらの利点は、より正確かつ効率的な機械学習モデルに貢献し、複雑な問題をより深く理解できるようになります。
今後の講義では、別の次元削減手法としての特徴抽出について検討します。特徴抽出には、主成分分析 (PCA) などの方法を使用して、元の特徴を新しい特徴セットに変換することが含まれます。このプロセスにより、次元を削減しながら関連情報を取得できるようになります。特徴選択と特徴抽出の両方を理解することで、データセットと当面の問題の特定の特性と要件に基づいて適切な手法を活用できます。
そこで、次の講義では、特徴抽出について詳しく説明し、その手法、利点、および応用について探っていきます。次元削減の魅力的な世界とそれが機械学習に及ぼす影響についての旅を続ける私たちにご注目ください。