GAMMA FACET:の普遍的な説明のための新しいアプローチ機械学習モデル

(Konstantin Hemker)

作成者:Jan Ittner、Konstantin Hemker & Malo Grisard

人工知能(AI)テクノロジーの急速な進歩により、私たちは常に最も複雑な実際のビジネス上の問題やプロセスを分析するための進化するツールセット。最先端の機械学習アルゴリズムにより、意思決定者は、コスト、速度、品質、歩留まりなどのビジネスクリティカルな結果を正確に予測できます。しかし、多くの場合、AIの真のビジネス価値は、単に 結果を予測すること(どの顧客が契約をキャンセルする可能性が高いか)ではなく、説明にあります。 >これらの結果を最適化します(価値の高い顧客を維持するために何をしなければなりませんか?)

さらに、機械学習を使用して日常の意思決定を頻繁に行うことを受け入れるマネージャーの意欲アルゴリズムに対する彼または彼女の信頼にかかっています。これには、AIモデルがどのように予測と決定を行うかについてのある程度の理解が必要です。企業が倫理的なAI の認識を高め、偏りのない、安全で責任ある意思決定が可能なAIモデルの設計を模索するにつれて、AIモデルを説明する必要性はさらに重要になります。

協力ゲーム理論を使用して機能の貢献を説明する

人間が説明できるAIは、特に協力ゲーム理論を適用する統合理論とアルゴリズムであるShapley Additive Descriptions(SHAP)の登場により、近年大きな進歩を遂げています。機械学習モデルの個々の予測を説明します。 SHAPを非常に魅力的なものにしているのは、その高度な数学的基盤にもかかわらず、結果は一般の聴衆にも直感的であるということです。

SHAPは、特定の予測結果に対するモデルのすべての変数の寄与を定量化します。たとえば、モデルを使用して、体重、年齢、運動習慣などの変数に基づいて、糖尿病を発症する患者のリスクを予測することができます。モデルは、リスクが67%であることを示している可能性があります。 SHAPはさらに進んで、たとえば、患者の年齢は糖尿病のリスクを5%増加させ、体重は2%減少させることを示します。

モデル検査と仮想実験の明確な役割

SHAPは、個々の予測を説明するための非常に便利な手段を提供します。ただし、最近まで、モデル全体を説明する手段は限られていました。変数がどのように作用し、相互作用して予測を行うかを一般的に説明するためです。 GAMMA FACETは、機械学習モデルを説明するための新しい全体論的アプローチを提示します。これは2つの角度から行われます。1つは、新しく開発されたモデル検査アルゴリズムを使用して、予測モデルの変数がどのように連携して、多くの個々の予測の説明全体のパターンを特定することで結果を予測するかを説明します。たとえば、GAMMA FACETは、糖尿病のリスクを評価するために体重と体重を組み合わせて検討する必要があるのに対し、ボディマス指数と身長/ウエスト比は交換可能であると判断する場合があります。次に、シミュレーションアプローチを適用して、「仮想実験」で、年齢の増加が患者集団全体の糖尿病リスクにどのように影響するかなど、主要な要因への体系的な変更が予測結果にどのように影響するかを判断します。

ケーススタディ:水掘削での故障の防止

これらの概念を調査する最良の方法は、実際の例を使用することです。 。井戸を掘削することは非常に危険で費用がかかります。このような掘削のコストは、井戸からの揚水を開始するために井戸を完成させるのにかかる時間によって決まります。これらのコストを削減するために、掘削者は通常、より速いペースで掘削するように奨励されています— 浸透率(ROP)として測定されます。土壌の特性に応じて、日割りは3万ドルから25万ドルの範囲になります。ただし、トレードオフがあります。より速く掘削すると、地層の崩壊やガスの浸透などの事故のリスクが高まります。したがって、他のリスク要因との関連で、ドリル速度がインシデントリスクに与える影響を理解するための機械学習モデルを構築します。

わかりやすくするために、この例では簡略化されたデータセットを使用します。 。データセットには500の観測値が含まれており、各行は過去の掘削作業を表し、掘削作業で掘削事故が発生したかどうかを示すバイナリインジケーターも含まれています。

現在および過去の運転条件に基づいて、予測アルゴリズムを使用して、掘削オペレーターに高いインシデントリスク。その後、オペレーターは掘削パラメータを調整する機会があります。ただし、行動する時期を知るだけでは不十分なことがよくあります。オペレーターはまた、インシデントが発生する理由を理解する必要があります。これは、掘削コストと潜在的なインシデントのコストのバランスをとる最適な掘削条件です。 GAMMA FACETは、これらの実用的な洞察を提供するのに役立ちます。

scikit-learnとモデルパイプライン

説明可能な機械学習モデルのバックボーンを形成するには、最初に、すべての変換とトレーニングのステップで、モデルのすべての出力を初期データ入力までさかのぼることができるモデルパイプラインを構築する必要があります。

GAMMA FACETは、Pythonでの機械学習の事実上の業界標準であるscikit-learnを中心に設計されています。 scikit-learn は、さまざまな回帰および分類アルゴリズムを提供します。また、データの前処理と実際のモデルのフィッティングを1つの統合されたワークフローに組み合わせて、機械学習パイプラインを構築するための普遍的なアプローチを提供します。

FACETは、3つの重要な方法で scikit-learn を強化します。 :

  1. エンドツーエンドの機能のトレーサビリティ

    :ネイティブのscikit-learnが構築されている間FACETは、numpyを中心に、すべての出力を数値配列として生成します。FACETは、すべての出力をパンダデータフレームとして配信する150を超えるscikit-learnトランスフォーマー、リグレッサ、分類器の拡張バージョンを提供します。さらに、FACETには、派生したフィーチャの名前を元のフィーチャにマッピングするための属性が含まれています。このマッピングは、機械学習パイプラインのさらに下流で機能を名前で参照する場合に不可欠です。

  2. 強化されたパイプライン処理

    :FACETは、1つの前処理ステップ(それ自体がパイプラインの場合もあります)と学習者ステップを含む追加の2ステップパイプラインクラスを導入します。私たちの経験では、この一見マイナーな追加により、パイプラインコードが大幅に簡潔で読みやすくなります。

  3. 検証の強化

    :FACETは、ブートストラップのいくつかのバリエーションにクロスバリデターを導入します。これは、FACETのシミュレーション機能のコンテキストに特に関連する統計手法です。

ドリルの例に戻って、次のようにします。機能のトレーサビリティに対するFACETのサポートを使用してパイプラインを構築する場合があります:

このコードスニペットにあるように、上記のパイプラインは、純粋なパイプラインを使用して構築されたパイプラインとほぼ同じに見えます。 scikit-learn 。ただし、FACETのsklearndfパッケージからすべてのパイプライン、トランスフォーマー、推定器をインポートし、おなじみの scikit-learn クラスの名前にはすべて「DF」サフィックス。また、特別なClassifierPipelineDFに注意してください。これは、FACETの拡張パイプラインの1つであり、1つのオプションの前処理ステップと、分類子であることが保証された後続の学習者ステップで構成されます。出力からわかるように、前処理の結果は、すべての特徴名を保持するデータフレームです。

次に、FACETの。 LeanerRankerは、 scikit-learnのグリッドサーチャーと同様に動作しますが、ハイパーを最適化するよりも、複数のタイプのモデルを互いに競合させる方がはるかに簡単です。単一モデルのパラメーター:

モデルの説明:インシデントの原因は何ですか?

これで、掘削作業のインシデントリスクを予測する調整およびトレーニングされたモデルができました。ただし、モデルを展開して予測されたリスクにアドホックに対応するだけではなく、より積極的になりたいと考えています。代わりに、インシデントが発生する理由と時期についてモデルが何を学習したかを知りたいのです。このモデルは、掘削機械の操作方法を体系的に変更してインシデントリスクを軽減する方法を理解するのに役立つことを望んでいます。

FACETは、2つの方法を組み合わせてモデルの説明に取り組みます。

  1. グローバルな機能の相互作用の説明

    :このメソッドは、機能が個別におよび集合的にどのように寄与するかについてモデルが学習したことを示します結果に。 FACETは、機能のペアごとに、相乗効果、冗長性、および独立性を定量化する新しいアルゴリズムを導入しています(詳細については、以下を参照してください)。このアルゴリズムは、グローバルモデルの説明のために開発した数学的フレームワークである SHAPベクトル分解に基づいており、今後の出版物でさらに詳しく説明します。

  2. モデルベースのシミュレーション

    :この方法により、体系的な機能の変更がどのようにこの場合、ドリルの故障のリスクを最小限に抑えるための望ましい結果。この結果は、さまざまな値の合成サンプルを作成し、モデルを使用して予測リスクの変化を評価することで実現します。以下に示すように、グローバルフィーチャの相互作用(つまり、方法1)を理解することは、シミュレーションが実際の条件下で有効であることを確認するための重要なステップです。

ドリルの例で使用する場合、FACETのLearnerInspectorクラスは、ペアワイズシナジー冗長性を計算することにより、機能の相互作用の概要を提供します。

冗長性と相乗効果マトリックス

結果は2つのマトリックスであり、機能の任意のペアについて、相乗効果との程度をパーセンテージで示します。これら2つの機能間の冗長性

シナジー

シナジーは、モデルが1つの機能からの情報を別の機能と組み合わせてターゲットを予測する度合いです。たとえば、年齢と性別を使用して心血管の健康状態を予測しており、近似モデルにそれらの間の複雑な相互作用が含まれていると仮定します。これは、これら2つの機能が心血管の健康を予測するために相乗的であることを意味します。さらに、両方の機能がモデルにとって重要であり、どちらかを削除するとパフォーマンスに大きな影響を与えます。年齢は性別よりも重要な機能であるため、年齢は性別よりも複合予測に大きく寄与すると仮定しましょう。この非対称的な寄与は、(年齢、性別)の相乗効果が(性別、年齢)の相乗効果よりも小さいことを意味します。別の見方をすると、予測が到達しようとしている座標であると想像してください。出発点から、年齢は性別よりもこの点にはるかに近づきますが、そこに到達するには両方が必要です。相乗効果は、予測に到達するために、性別が性別(年齢の観点からの相乗効果が低い)よりも年齢(性別の観点からの相乗効果が高い)からより多くの助けを得るという事実を反映しています。

これは、重要なポイント:相乗効果は、2つの相互作用する機能がモデルの予測に寄与するグローバル情報の自然に非対称な特性です。相乗効果は、0%(完全な自律性)から100%(完全な相乗効果)の範囲のパーセンテージとして表されます。 相乗効果の特徴は完全に無相関である可能性があり、定期的な探索的分析では見つけるのが難しい場合があることに注意してください。

相乗効果のマトリックスを解釈するために、ペアの最初の特徴は行です(「からの視点」)、および2番目の機能は列です。掘削の例では、FACETは、回転速度の「観点から」、情報の67%がビットの重みと組み合わされて、障害を予測していると報告しています。高いビット重量と高い回転の両方での穴あけは、機器の摩耗に不釣り合いに大きな影響を与える可能性があり、その結果、事故のリスクが大幅に高まるため、これは状況に応じて理にかなっているようです。ビットの重量(61%)の観点からも相乗効果が高いことは理解できます。これは、インシデントリスクへの寄与を理解するために、ビットの回転速度と重量を一緒に調べる必要があることを示しています。

冗長性

冗長性は、モデルの機能の程度です。ターゲットを予測するために、2番目の機能の情報を複製します。たとえば、住宅価格を予測するための家のサイズと寝室の数があるとします。これらの機能は、寝室が多いほど家が大きくなり、平均して価格が高くなる可能性があるため、同様の情報を取得します。 (寝室の数、家のサイズ)の冗長性は、(家のサイズ、寝室の数)の冗長性よりも大きくなります。これは、家のサイズが、住宅価格を予測するために寝室の数が何をするかを、その逆よりも「知っている」ためです。したがって、寝室の数の観点から、より大きな冗長性があります。それについて考える別の方法は、家のサイズを削除すると、寝室の数を削除するよりもモデルのパフォーマンスに悪影響を与えることです。家のサイズは、寝室の数がないことをより適切に補うことができるからです。これは、家のサイズがモデルの寝室の数よりも重要な機能であることも意味します。

ここで重要な点は、相乗効果と同様に、冗長性はグローバル情報機能の自然に非対称なプロパティであるということです。ペアは結果を予測するために持っています。 冗長性は、0%(完全な一意性)から100%(完全な冗長性)の範囲のパーセンテージとして表されます。 2つの機能が冗長であるが線形相関がない場合、探索的分析で冗長性を必ずしも見つけることはできません。

相乗効果と同様に、マトリックス行は行と列の機能ペアの「視点」機能です。ドリルの例では、冗長性の高い機能の2つのペアを確認します。

  • 最初の冗長な機能のペアはROPとIROPです。冗長性は、どちらの機能(75%)の観点からも類似しています。これは、一方が他方の逆であり、モデル内でインシデントリスクを相互に置き換えることができるためです。これは、線形に相関していない場合でも、フィーチャ間の冗長性を検出するFACETの機能の良い例です。
  • 冗長フィーチャの2番目のペアは、操作の深さと穴の直径です。穴の直径の観点から、情報の53%は、障害を予測するために操作の深さで複製されます。直感的には、掘削者が地球を深く掘削するときに薄い掘削ビットを使用するため、操作の深さと穴の直径が高度に関連しているため、理由がわかります。 (操作の深さ、穴の直径)の冗長性が(穴の直径、操作の深さ)よりもわずかに低い理由は、操作の深さがモデルで少し重要な機能であるためです。

FACETは、階層的クラスタリング樹状図として相乗効果または冗長性の関係を評価するのに非常に役立つ2番目のタイプの図を作成できます。このアプローチは、単純化された視点だけでなく、クラスタリングの特徴距離(1 —メトリック)を提供する冗長性(または相乗効果)の対称バリアントに依存していることに注意してください。この例では、冗長性樹状図に関心があります:

ファセットの特徴冗長性樹状図

冗長性樹状図は、冗長機能のクラスターを明らかにします。クラスター内の特徴間の相互冗長性の程度(左側の特徴が樹状図にマージされるほど、冗長性​​が強くなります)、カラースケールを使用して、個々の特徴および特徴のクラスターに対する特徴の重要性を示します。

私たちの2組の冗長な特徴は、それらの重要性の組み合わせを含め、樹状図ではっきりと認識できます。浸透率(ROP)は、その逆機能(IROP)(> 80%の冗長性)で非常に冗長であり、両方の機能を合わせた重要性は36%です。 ROPをシミュレートしたいので、IROPを削除して、シミュレートする機能が結果に一意に寄与することを確認します(次のセクションでより詳細な説明を提供します)。

IROPを削除してモデルを再トレーニングした後、新しい冗長性樹状図を生成するときの興味深い観察結果:ROPの特徴重要度は35%に達し、ROPがROPの説明において以前のROP / IROPクラスターの役割を果たしたことを示しています。インシデントリスクへの関連する寄与。

特徴プルーニング後の冗長リンケージ樹状図

特徴上昇のシミュレーション

検査済みモデルでは、モデルがどのように予測を行い、予測子が互いにどのように相互作用するかについての十分な理解に到達しました。

多くの場合、これらの洞察は「もしも」の質問に直接つながります。H影響力のある変数を体系的に変更して、結果を改善できるでしょうか。この例では、浸透率の変化がインシデントリスクにどのように影響するかを理解したいと思います。経済的な観点から、ドリルオペレーターは安全性を維持し、故障を減らしながら、できるだけ速く掘削しようとします。同様の質問は、コストの削減、歩留まりの最大化、顧客の維持、または実際にデータに基づいたビジネス成果の最適化を目的とする他​​のビジネスコンテキストにも当てはまります。

FACETのシミュレーションアプローチは、1つの機能を選び出し、実行します。さまざまな値に対する一連の「仮想実験」。各実験で、シミュレートされた特徴が常に各履歴観測に対して指定された値をとるふりをします。

このアプローチでは、シミュレートする特徴がモデル内の他の機能と重複していません。そうすることで、1つの機能の値を調整することによって実行不可能なシナリオを作成するリスクがありますが、その冗長な兄弟の値は調整しません。この例で、ある範囲の値に対してROPをシミュレートしたが、モデルにIROPを保持した場合、実行不可能なシナリオが作成される可能性が高くなります。

シミュレーションは2つのステップで実行されます。シミュレートする機能を決定し、FACETの partitioner クラスの1つを選択して、その機能について以前に観測された値の範囲をパーティションに分割します。次に、パーティションごとに1つのシミュレーションを実行します。そのたびに、シミュレートされたフィーチャの値を、すべての観測にわたってパーティションの中心値に固定します。

したがって、この例では、シミュレーションは次の質問をします。私の平均的なインシデントリスクは、常にX m / sのROPで掘削したことがありますか?」ROPは実数として測定されるため、ContinuousRangePartitionerを使用して、ROPでこれまでに観察された値の範囲内に一連の同じサイズのパーティションを作成します。モデルはその範囲の値でトレーニングされており、通常は有効な範囲外の外挿を思い付くことができないため、過去に観測された値の範囲内でのみシミュレーションすることが重要です。

シミュレーションステップ1—ROP機能の観測値を同じサイズのバケットに分割する

使用以前に

から特定した最良のモデルであるシミュレーターは、各パーティションの平均予測インシデントリスクを決定するようになりました。 FACETはブートストラップをサポートしているため、データのさまざまなサブセットでトレーニングされたモデルのバリエーションで各シミュレーションを何度も繰り返し、シミュレーション結果の分布を使用してシミュレーションの信頼度を定量化できます。

シミュレーションステップ2—ROP機能のさまざまな値の結果をシミュレーションする

上記の視覚化は、インシデントリスクに対するROPの影響を示していると同時に、自信を持っています。シミュレーションで。 x軸は、シミュレーションが実行されたさまざまなパーティションを示しています。 x軸の下のバーは、パーティション内にある元のサンプルの観測値の数を示し、シミュレーション値ごとにサポートされていることを示しています。 (これらのパーティションで実際に観測された値が少なくなるにつれて、信頼区間がマージンに向かってどのように広がるかに注意してください。)中央の上昇線は各パーティションの予測インシデントリスクの中央値を表し、外側の線はすべての交差の95%信頼区間を示します。検証は予測から分割されます。

シミュレーションでは、ROPを増やすと、インシデントの可能性が大幅に高まることが確認されています。これは、より高速なROPで運用することのリスクレベルに関する洞察を提供します。また、ROPが危険な高レベル(> 30ft / h)で運用され、インシデントの可能性が70%を超える場合が複数あることもわかります。

次は何ですか?

ビジネスの観点から、これらの「もしも」の質問に答えることは、リスクを評価するプロセスにとって非常に価値があります。現在のプロセスを改善する方法を見つける。この例では、旅はここで終わりません。シミュレーションの結果に基づいて、次のステップは、より遅いまたはより速いROPで掘削の費用便益分析を実行して、掘削コストと掘削インシデントの財務リスクとの間の最良のトレードオフを達成することです。

GAMMAFACETを簡単に試してみることができます。 conda install gamma-facet -c bcg_gamma -c conda-forge を確認し、 GitHubリポジトリ

のドキュメントを確認してください。 と実際の例。

謝辞

このパッケージは機械学習とモデルの説明性のための2つの優れたPythonパッケージが利用可能でなければ、不可能でした。

1。 scikit-learn は、FACETの基盤となる機械学習パイプラインを構成する学習者とトランスフォーマーを提供します。さらに、データサイエンティストがFACETを簡単に開始できるように、基本的な適合/変換/予測パラダイムscikit-learnsに沿ってFACETAPIを設計しました。

2。 Scott Lundberg による

SHAP の実装は、相乗効果に分解されるSHAPベクトルを推定するために使用されます、冗長性、および独立性のベクトル。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です