特徴量のインパクト¶
備考
SHAPベースの特徴量のインパクトを視覚化するには、モデルを構築する前に、高度なオプションでSHAP値をサポートするモデルのみを含めるを有効にする必要があります。
特徴量のインパクトは、モデルの決定を最も促進している特徴量を高レベルで示します。 結果をモデル化するために重要な機能を理解することで、モデルがビジネスルールに準拠しているかどうかをより簡単に検証できます。 特徴量のインパクトは、削除してモデルのパフォーマンスを向上させることができる重要ではない列や冗長な列を特定する機能を提供することで、モデルの改善にも役立ちます。
備考
特徴量のインパクトは特徴量の有用性(データページ)とは異なります。 データページの有用性列内に表示される緑色のバーは、1つの特徴量が単独でターゲット特徴量との間にどのような相関性を有しているかを測定します。 これに対し、特徴量のインパクトは、ある特徴量がモデルのコンテキスト内でどの程度有用であるかを測定します。
特徴量のインパクトのレンダリングには3つの方法(Permutation、SHAP、およびツリーベースの有用性)があります。 同じインサイトが生成されても潜在的に異なる結果が返される場合の混乱を避けるために、これらは相互に隣接して表示されません。 以下のセクションでは、それぞれの相違点と計算方法について説明します。
すべてのモデルタイプで利用可能な特徴量のインパクトは、トレーニングデータを使用して計算されます。 オンデマンド特徴量であるため、結果を確認するには計算を行う必要があります。 モデルに対する特徴量のインパクトをDataRobotに計算させると、その情報はプロジェクトと共に保存されます(プロジェクトを開くたびに計算し直す必要はありません)。 これは多クラスモデルでも使用可能で、独自の機能を提供します。
Permutationベースの特徴量のインパクト¶
特徴量のインパクトおよび予測の説明タブは、計算結果を共有します(予測の説明はインパクトの計算に依存します)。 どちらかのタブで計算したインパクトは、もう一方のタブでも結果を表示できます。 特徴量のインパクトタブだけでなく、デプロイおよび特徴量ごとの作用タブから計算を開始することができます。 また、DataRobotはPermutationベースの特徴量のインパクトの上位スコアリングリーダーボードモデルを自動的に実行します。
特徴量のインパクトの解釈と使用¶
特徴量のインパクトは、モデルの決定を促進している特徴量を高レベルで示します。 デフォルトでは、特徴量は有用性の高い順に並べ替えられます。 最も有用性の高いモデルの精度は常に1に正規化されます。
特徴量のインパクトは以下の情報を提供します。
-
最も有用性の高い特徴量(人口統計データ、取引データ、またはモデルの結果を促進する何か他の要素)。業界の専門家のナレッジとのすり合わせ。
-
モデルを改善する機会の有無。精度がマイナスの特徴量や冗長な特徴量がある場合があります。 そのような特徴量を削除すると、モデルの精度と速度が向上する場合があります。 一部の特徴量は、有用性が予想外に低い可能性があるので調査する価値があります。データに問題があるかどうか。 データ型が正しく定義されているかどうか。
特徴量のインパクトを評価する際は、以下の点に注意してください。
-
特徴量のインパクトは、モデルのトレーニングデータのサンプルを使用して計算されます。 サンプルサイズが結果に影響する場合があるため、より大きいサンプルサイズで数値を再計算する必要があります。
-
時折、データに含まれるランダムノイズが原因で、負の特徴量のインパクトスコアを含む特徴量がある場合があります。 極度にアンバランスなデータでは、大部分が負の値となる場合があります。 これらの特徴量を削除することを検討してください。
-
プロジェクト指標の選択は、特徴量のインパクトの結果に基づくPermutationに大きな影響を与える可能性があります。 AUCなど、一部の指標はモデル出力において小さい変更に対する真陽性率が低いので、特徴量の変化がモデルの精度にどれだけ影響するかを評価するには最適ではありません。
-
いくつかの条件の下では、モデリングに使用するアルゴリズムの関数が原因で特徴量のインパクトの結果が変わることがあります。 これは、多重共線性の場合などに発生する可能性があります。 そのような場合、L1ペナルティを使用するアルゴリズム(いくつかの線形モデルなど)の場合、インパクトは1つの信号に集中しますし、ツリーの場合は相関する複数の信号にわたって均一に分散されます。
特徴量のインパクトの方法論¶
DataRobotでの特徴量のインパクトの計算には3つの方法(Permutation、SHAP、およびツリーベースの有用性)があります。
-
Permutationベースでは、列の値がシャッフルされた場合に、トレーニングデータのサンプルに基づいて、モデルの誤差がどの程度増加するかが示されます。
-
SHAPベースでは、平均で各機能がトレーニングデータの予測値にどの程度影響するかを示します。 教師ありプロジェクトの場合、SHAPはAutoMLプロジェクトのみに使用できます。 SHAPリファレンスおよびSHAPに関する注意事項も参照してください。
-
ツリーベース特徴量の有用性は、ノードの不純物測定(ジニ、エントロピー)を使用して、各特徴量がモデルに追加するゲインの量を示します。
全体として、DataRobotでは、PermutationベースまたはSHAPベースの特徴量のインパクトを使用することをお勧めします。これは、元の特徴量の結果を示し、方法がモデルに依存しないためです。
それぞれの方法における注目すべきいくつかの相違点:
-
Permutationベースのインパクトは、すべてのモデリング手法で機能し、モデルにとらわれないアプローチを提供します。 ツリーベースの有用性はツリーベースのモデルでのみ機能します。SHAPは、SHAPをサポートするモデルの結果のみを返します。
-
SHAPベースの特徴量のインパクトは、サンプルサイズが小さい場合、Permutationベースの特徴量のインパクトよりも高速かつ堅牢です。
-
SHAPベースとPermutationベースの特徴量のインパクトは、どちらも元の特徴量の有用性を示しますが、ツリーベースの特徴量のインパクトはモデリング中に派生した特徴量の有用性を示します。
DataRobotは次の場合を除き、デフォルトでPermutationを使用します。
- プロジェクトを開始する前に、 高度なオプションリンクでモードをSHAPに設定している。
- 教師なし異常検知のプロジェクトタイプを作成している。
教師なしプロジェクトの特徴量のインパクト¶
異常検知の特徴量のインパクトは、SHAP値を集計することによって計算されます(AutoMLと時系列プロジェクトの両方)。 後者は指標を計算するためにターゲット列を必要とするので、この手法はPermutationベースの計算の代わりに使用されます。 SHAPでは、アウトオブサンプルの行ごとに近似値が計算され、列ごとに平均化されます。 サンプルは、トレーニングデータ全体で均一に取得されます。
特徴量のインパクトチャートの生成¶
備考
時系列モデルで使用できるいくつかの追加の設定があります。
PermutationベースおよびSHAPベースの特徴量のインパクトの場合:
-
モデルの解釈 > 特徴量のインパクトタブを選択します。
-
(オプション)クイックコンピューティングを使用するかどうかを選択します。
-
特徴量のインパクトを計算をクリックします。 DataRobotは、右ウインドウワーカー使用量パネルに計算状況を表示します。 さらに、計算ボックスが状況インジケータに置き換えられ、そこに計算済み特徴量をパーセンテージで表示されます。
-
DataRobotが計算を完了すると、モデルの最も有用性の高い特徴量が特徴量のインパクトグラフに有用性順に最大25個表示されます。 チャートは、Y軸上に特徴量名、X軸に予測可能な有用性(影響)を列挙します。 また、計算に使用する行数も示されます。
出力で 冗長な特徴量がレポートされることがあります(アイコンで示されます)。 冗長情報を使用して、これらの特徴量を除外する特殊な特徴量セットを容易に作成できます。
-
初期設定では、チャートは影響(有用性)を基に特徴量を表示しますが、アルファベット順に並べ替えることもできます。 ソート条件ドロップダウンをクリックして、特徴量名を選択します。
-
(オプション)別の データスライスを作成または選択して、データの部分母集団を表示します。
-
(オプション)エクスポートボタンをクリックし、モデルの最も有用性の高い特徴量のうち最高1000件を含んだCSVファイルをダウンロードします。
ツリーベースの特徴量の有用性情報は、インサイト > ツリーベースの特徴量の有用性に表示できます。
クイックコンピューティング¶
特徴量のインパクトを操作する場合、クイック計算を使用オプションは、視覚化で使用するサンプルサイズを制御します。 可視化の構築に使用される行数は、トグル設定および、スライスが適用されているかどうかに基づきます。
スライスされていない特徴量のインパクトでは:
-
オンの場合、DataRobotは、2500行またはモデルトレーニングサンプルサイズの行数のいずれか小さい方を使用します。
-
オフの場合、DataRobotは、100,000行またはモデルトレーニングサンプルサイズの行数のいずれか小さい方を使用します。
データスライスが適用されているとき:
-
オンの場合、DataRobotは、2500行またはスライス適用後に使用できる行数のいずれか小さい方を使用します。
-
オフの場合、DataRobotは、100,000行またはスライス適用後に使用できる行数のいずれか小さい方を使用します。
このオプションは、精度と安定性が高い結果を取得するために、例えば、デフォルトの2500行よりも大きいサンプルサイズ(またはダウンサンプリングした場合はより小さいサンプルサイズ)で、特徴量のインパクトをトレーニングする際に使用します。
備考
特徴量のインパクトの前に特徴量ごとの作用を実行すると、DataRobotは最初に特徴量のインパクトの計算を開始します。 その場合、クイックコンピューティングオプションが特徴量ごとの作用画面で使用できるようになり、特徴量のインパクトの計算基準が設定されます。
新しい特徴量セットの作成¶
モデルに対する特徴量のインパクトを計算したら、そのモデルで上位のインパクトを持つ特徴量に基づいて(または、Permutationベースのプロジェクトの場合は冗長な特徴量を除外して)、1つ以上の特徴量セットを作成することができます。 (特徴量セットに関する詳しい情報はこちら。)この時点で、新たな特徴量セットを使用し、そのモデルを再実行することが可能です。 こうすることで、さらに正確な結果が作成される可能性があります。なお、縮小されたセットがモデルのパフォーマンスを改善しない場合でも、特徴量が少ないモデルは動作が速いことから利点があるといえます。 特徴量のインパクトページから新規特徴量セットを作成するには:
-
特徴量のインパクトの計算が完了した後、特徴量セットを作成をクリックします。
-
セットに含める特徴量の数を入力します。 これらは影響に関するトップX特徴量です(アルファベット順にソートされているか否かを問わず)。 30を超える数の特徴量を選べます。 30を超える数の特徴量を見るには、CSVをエクスポートし、そのファイルから得ようとする特徴量の数を決定します。
-
(オプション)冗長な特徴量を除外を選択して、冗長な特徴量を除外したセットを構築します。 これらの特徴量には、冗長()アイコンが表示されます。
-
フィールドに入力した後、特徴量セットを作成をクリックしてセットを作成します。 新規特徴量セットを作成した時点で、全ての特徴量セットドロップダウンメニューで利用可能になり、特徴量セットタブ(データページ)に表示できます。
冗長な特徴量を除外(AutoML)¶
モデルに対してPermutationベースの特徴量のインパクトを実行すると、トレーニング行のサブセット(デフォルトで2500行、リクエストに応じて最大100,000行)が評価され、ターゲットに対するそのインパクトが計算されます。 2つの特徴量によって予測が同様に変化する場合、DataRobotでは、その2つの特徴量のインパクトが相関するものとして認識され、低い特徴量のインパクトの特徴量が冗長として識別されます()。 モデルタイプとサンプルサイズは特徴量のインパクトスコアに影響するので、冗長な特徴量の識別はモデルとサンプルサイズごとに異なります。
冗長な特徴量が識別された後、冗長な特徴量を除外した新しい特徴量セットを作成できます。オプションとして、ユーザー指定のトップ_N_の特徴量を含む新しい特徴量セットを作成することもできます。 冗長な特徴量を除外する場合、特徴量のインパクトの再計算が行われます。その結果、特徴量のランキングが変わり、トップ特徴量の順序が変わることがあります。 新しいランキングが作成されても、チャート表示は更新されません。
特徴量のインパクトの「再計算」
新しい特徴量セットを作成し、冗長な特徴量を除外することを選択した場合、DataRobotは既存の特徴量のインパクトデータの計算といくつかの追加のヒューリスティックを使用します。 プロセスは次のように機能します。
- DataRobotは 冗長な特徴量を識別します。 各グループにおいて、DataRobotはインパクトがより大きい特徴量を特定し、それを「プライマリー」特徴量として選択します。 たとえば、
Height (in)
、Height (cm)
、Height (mm)
があり、それらはすべて冗長であるとします。 DataRobotは、—Height (cm)
1つ(おそらく—)を保持する特徴量として選択し、他の各特徴量をHeight (cm)
の冗長としてマークします。 - 冗長な特徴量を除外を選択すると、冗長な特徴量がすべて削除された特徴量セットが作成されます。
- 削除された各特徴量が持っていたインパクトの一部*が、保持された「プライマリー」特徴量に割り当てられます。
- DataRobotは、手順3に基づいて残りの特徴量を再ランク付けします。これは、視覚化された特徴量から上位 X 個が選択される新しいランキングです。
* DataRobotは、削除された冗長な特徴量ごとに、(0.7 * corr) * <raw redundant feature impact>
スコアを「プライマリー」特徴量に追加します。 corr
の値は、shuffled predictions of the primary feature
とshuffled predictions of the redundant feature
の相関の度合いです。 最初に冗長とマークされる特徴量の場合、corr >= 0.85
です。
時系列での特徴量のインパクト(Permutationのみ)¶
備考
データスライスは、OTVおよび時系列プロジェクトで プレビュー機能として使用できます。
時系列モデルの場合、元の特徴量または派生した特徴量の結果を表示するオプションがあります。 元の特徴量を表示すると、元の親特徴量から派生したすべての特徴量が1つのエントリーとしてグラフに表示されます。 特徴量の上にカーソルを置くと、元の特徴量および派生した特徴量の集計されたインパクト(派生した特徴量のインパクトの合計)を示すツールチップが表示されます。
設定リンクからプロットを再スケールすることもできます(デフォルトでオン)。その場合、表示がズームインしてインパクトの低い結果が表示されます。 この機能を使用すると、最も高い特徴量のインパクトが他の特徴量に比べて顕著に高い場合、低い特徴量の値を表示しないようにすることができます。
設定リンクは、スケーリングが使用可能な場合にのみ使用できます。 リンクは特徴量のインパクトの値の比率(スケーリングを必要とするのに十分高いかどうか)に基づいて表示または非表示になります。 具体的には、highest_score / second_highest_score > 3
の場合にのみ表示されます。
冗長な特徴量を除外(時系列)¶
時系列の冗長な特徴量を除外オプションは、AutoMLオプションと同様に機能し、日付/時刻でパーティションされたプロジェクトに適用されます。 時系列の場合、新しい特徴量セットは派生した特徴量(モデリングデータセット)から構築することができ、特徴量のインパクトを再計算して、インパクトの得られる特徴量のセットを使用してモデリングの向上に役立つことができます。
多クラスモデルでの特徴量のインパクト(Permutationのみ)¶
多クラスモデルの場合、特徴量のインパクトを計算して、特徴量が全般的にモデルでどれだけ有用なのかに加えて、個々のクラスでどれだけ有用なのかを見つけることができます。 これは、クラスごとに特徴量のインパクトをどのようにトレーニングするかを決定する際に便利です。
特徴量のインパクトを計算した後、チャートに追加のクラスを選択ドロップダウンが表示されます。
集約オプションを使用すると、その他のモデルと同様に特徴量のインパクトが表示されます。これには、モデルの最も有用な特徴量が最も有用性の高いものから順に最大25個表示されます。 1つのクラスを選択すると、その特徴量のインパクトスコアが新しいチャートに表示されます。
エクスポートボタンをクリックすると、集約または1つのクラスの最も有用な特徴量を含むチャートの画像およびCSVファイルがダウンロードされます。 各クラスおよび集約の特徴量のインパクトスコアとチャートを含むZIPファイルをダウンロードすることもできます。
方法の計算¶
このセクションには、3つの利用可能な方法のそれぞれの計算に関する技術的な詳細が含まれています。
- Permutationベースの特徴量のインパクト
- SHAPベースの特徴量のインパクト
- 特徴量の有用性(木型アルゴリズム)
Permutationベースの特徴量のインパクト¶
Permutationベースの特徴量のインパクトは、特徴量値がシャッフルされたときのモデル精度の低下を測定します。 値を計算するために、DataRobotでは次の処理が行われます。
- トレーニングレコードのサンプルで予測を作成します。デフォルトでは2500行、最大100,000行です。
- トレーニングデータを変更します(列の値をシャッフルします)。
- 新しい(シャッフルされた)トレーニングデータの予測を作成し、シャッフルによる精度の低下を計算する。
- 平均低下を計算する。
- 特徴量ごとに手順2~4を繰り返します。
- 結果を正規化します(一番上の特徴量のインパクトは100%)。
サンプリングプロセスは、以下の条件のいずれかに対応します。
- 均衡したデータの場合、ランダムサンプリングが使用されます。
- 不均衡な二値データの場合、スマートダウンサンプリングが使用されます。DataRobotは、50/50により近い不均衡な二値ターゲットの分布を作成し、スコアリングに使用するサンプルの加重を調整します。
- ゼロ過剰連続値データの場合、スマートダウンサンプリングが使用されます。DataRobotは、非ゼロ要素をマイノリティークラスにグループ化します。
- 不均衡の多クラスデータの場合、ランダムサンプリングが使用されます。
SHAPベースの特徴量のインパクト¶
SHAPベースの特徴量のインパクトは、平均で各特徴量がトレーニングデータの予測値にどの程度影響するかを測定します。 値を計算するために、DataRobotでは次の処理が行われます。
- トレーニングデータからレコードのサンプルを取得します(デフォルトで5000行、最大100,000行)。
- サンプルの各レコードのSHAP値を計算し、各レコードの各特徴量の局所的な有用性を生成します。
- サンプル内の各特徴量の
abs(SHAP values)
の平均を取ることにより、グローバルな有用性を計算します。 - 結果を正規化します(一番上の特徴量のインパクトは100%)。
特徴量の有用性(木型アルゴリズム)¶
ツリーベース特徴量の有用性は、ノードの不純物測定(ジニ、エントロピー)を使用して、各特徴量がモデルに追加するゲインの量を示します。