主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

情节

シャープレイ値のプロット

    説明

    图(讲解员は,沙普利オブジェクト讲解员のシャープレイ値の横棒グラフを作成します。これらの値はオブジェクトのShapleyValuesプロパティに格納されています。各棒グラフは,クエリ点(讲解员。QueryPoint)について黑箱モデル(讲解员。BlackboxModel)内の各特徴量のシャープレイ値を示します。

    图(讲解员,名称,值では1つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば,“NumImportantPredictors”,5と指定して,絶対シャープレイ値が上位の特徴量のうち5つの特徴量のシャープレイ値をプロットします。

    b =情节(___は,前の構文におけるいずれかの入力引数の組み合わせを使用して,棒グラフオブジェクトbを返します。bを使用して,作成後の棒グラフの酒吧のプロパティをクエリまたは変更します。

    すべて折りたたむ

    分類モデルの学習を行い,沙普利オブジェクトを作成します。次に,オブジェクト関数情节を使用して,シャープレイ値をプロットします。

    CreditRating_Historicalデータセットを読み込みます。データセットには,顧客ID,顧客の財務比率,業種ラベル,および信用格付けが格納されています。

    台= readtable (“CreditRating_Historical.dat”);

    テーブルの最初の3行を表示します。

    头(资源描述,3)
    ans =3×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ _____ _____ _______ ________ _____ ________ ______ 62394 0.013 0.104 0.036 0.447 0.142 3{“BB”}48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A}

    関数fitcecocを使用して,信用格付けの黑箱モデルに学習させます。资源描述内の2 ~ 7列目の変数を予測子変数として使用します。クラス名を指定してクラスの順序を設定することが推奨されます。

    黑箱= fitcecoc(资源描述,“评级”,...“PredictorNames”tbl.Properties.VariableNames (7),...“CategoricalPredictors”,“行业”,...“类名”,{“AAA”“AA”“一个”“BBB”“BB”“B”“CCC”});

    最後の観測値の予測を説明する沙普利オブジェクトを作成します。計算速度を向上するには,资源描述の観測値の25%を階層的にサブサンプリングし,その標本を使用してシャープレイ値を計算します。

    queryPoint =(资源(最终,:)
    queryPoint =表1×8ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ _____ _____ _______ ________ ____ ________ ______ 73104 0.239 0.463 0.065 2.924 0.34 - 2{“AA”}
    rng (“默认”%的再现性c = cvpartition(资源描述。评级,“坚持”, 0.25);: tbl_ =台(测试(c):);: tbl_讲解员=沙普利(黑盒,“QueryPoint”, queryPoint);

    分類モデルの場合,沙普利は各クラスの予測クラススコアを使用してシャープレイ値を計算します。ShapleyValuesプロパティの値を表示します。

    讲解员。ShapleyValues
    ans =6×8表预测AAA AA BBB BB B CCC  __________ __________ __________ ___________ __________ ___________ ___________ ___________ " WC_TA“0.014584 0.0064698 0.0027468 0.00045585 -0.007959 -0.011812 -0.011279”RE_TA“0.047797 0.027083 0.015166 -0.0031936 -0.025054 -0.059563 -0.08344”EBIT_TA“0.00034326 0.0001524 0.00012384 3.5202 -0.00019141 e-05-0.00038252 -0.00033693 "MVE_BVTD" 0.38221 0.38229 0.19383 -0.007901 -0.15755 -0.2152 -0.17022 "S_TA" -0.0035663 -0.0025991 -0.00021177 -0.0010166 -2.1005e-05 0.00041421 -0.00058884 "Industry" -0.028313 -0.013392 0.00089644 0.022877 0.025636 0.028482 0.044832

    ShapleyValuesプロパティには,クラスごとにすべての特徴量のシャープレイ値が格納されています。

    関数情节を使用して予測クラスのシャープレイ値をプロットします。予測子名に含まれるアンダースコアを表示するには,座標軸のTickLabelInterpreter値を“没有”に変更します。

    f =图;情节(讲解员);f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含bar类型的对象。该对象表示AA。

    横棒グラフは,絶対値で並べ替えられた,すべての変数のシャープレイ値を示します。各シャープレイ値は,クエリ点についてのスコアに関して対応する変数が原因で生じた予測クラスの平均スコアからの偏差を説明します。

    讲解员。BlackboxModelですべてのクラス名を指定して,すべてのクラスのシャープレイ値をプロットします。

    f =图;情节(讲解员,“类名”explainer.BlackboxModel.ClassNames) f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含7个bar类型的对象。这些对象代表AAA, AA, A, BBB, BB, B, CCC。

    回帰モデルの学習を行い,沙普利オブジェクトを作成します。オブジェクト関数适合を使用して,指定したクエリ点のシャープレイ値を計算します。次に,オブジェクト関数情节を使用して,予測子のシャープレイ値をプロットします。関数情节を呼び出すときにプロットする重要な予測子の数を指定します。

    carbigデータセットを読み込みます。このデータセットには,1970年代と1980年代初期に製造された自動車の測定値が格納されています。

    负载carbig

    加速度气缸などの予測子変数と応答変数英里/加仑が格納された表を作成します。

    台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);

    学習セットの欠損値を削除すると,メモリ消費量を減らして関数fitrkernelの学習速度を向上させることができます。资源描述の欠損値を削除します。

    台= rmmissing(台);

    関数fitrkernelを使用して英里/加仑の黑箱モデルの学習を行います。

    rng (“默认”%的再现性mdl = fitrkernel(资源描述,“英里”,“CategoricalPredictors”[2 - 5]);

    沙普利オブジェクトを作成します。mdlには学習データが含まれないため,データセット资源描述を指定します。

    讲解员=沙普利(mdl(资源)
    explainer = shapley with properties: BlackboxModel: [1x1 RegressionKernel] QueryPoint: [] BlackboxFitted: [] ShapleyValues: [] NumSubsets: 64 X: [392x7 table] CategoricalPredictors: [2 5] Method: ' interinteral -kernel'

    讲解员は,学習データ资源描述Xプロパティに格納します。

    资源描述の最初の観測値についてすべての予測子変数のシャープレイ値を計算します。

    : queryPoint =(资源(1)
    queryPoint =表1×7加速气缸位移马力Model_Year体重MPG  ____________ _________ ____________ __________ __________ ______ ___ 12 8 307 130 70 3504
    讲解员=适合(讲解员,queryPoint);

    回帰モデルの場合,沙普利は予測応答を使用してシャープレイ値を計算し,ShapleyValuesプロパティに格納します。ShapleyValuesプロパティの値を表示します。

    讲解员。ShapleyValues
    ans =6×2表预测器ShapleyValue ______________ ____________“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402

    クエリ点についての予測応答を表示し,関数情节を使用してクエリ点のシャープレイ値をプロットします。予測子名に含まれるアンダースコアを表示するには,座標軸のTickLabelInterpreter値を“没有”に変更します。“NumImportantPredictors”,5を指定して,予測応答について最も重要な5つの予測子のみをプロットします。

    讲解员。BlackboxFitted
    ans = 21.0495
    f =图;情节(讲解员,“NumImportantPredictors”5) f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含bar类型的对象。

    横棒グラフは,絶対値で並べ替えられた,5つの最も重要な予測子のシャープレイ値を示します。各シャープレイ値は,クエリ点についての予測に関して対応する変数が原因で生じた平均からの偏差を説明します。

    入力引数

    すべて折りたたむ

    黑箱モデルを説明するオブジェクト。沙普利オブジェクトとして指定します。

    名前と値のペアの引数

    オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

    例:情节(讲解员,NumImportantPredictors 5“类名”,c)は,クラスcについて5つの最も重要な予測子のシャープレイ値を示す棒グラフを作成します。

    プロットする重要な予測子の数。正の整数を指定します。関数情节は,絶対シャープレイ値が上位の予測子のうち指定された数の予測子のシャープレイ値をプロットします。

    例:“NumImportantPredictors”,5は,上5位つの重要な予測子をプロットするように指定します。関数情节は,絶対シャープレイ値を使用して重要度の順序を決定します。

    データ型:|

    プロットするクラスラベル。分类配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列を指定します。“类名”値の値とデータ型は,讲解员における機械学習モデルの一会プロパティ(explainer.BlackboxModel.ClassNames)のクラス名のものと一致しなければなりません。

    1つ以上のラベルを指定できます。複数のクラスラベルを指定した場合は,各特徴量の複数の棒グラフが異なる色でプロットされます。

    既定値は,クエリ点についての予測クラス(讲解员BlackboxFittedプロパティ)です。

    この引数は,讲解员の機械学習モデル(BlackboxModel)が分類モデルである場合のみ有効です。

    例:“类名”,{“红”、“蓝”}

    例:“类名”,explainer.BlackboxModel.ClassNamesは,“类名”としてBlackboxModel内のすべてのクラスを指定します。

    データ型:||逻辑|字符|细胞|分类

    詳細

    すべて折りたたむ

    シャープレイ値

    ゲーム理論におけるプレイヤーのシャープレイ値とは,協力ゲームでのプレイヤーの平均限界貢献度です。機械学習予測のコンテキストでは,クエリ点の特徴量のシャープレイ値は,指定したクエリ点での予測(回帰の場合は応答,分類の場合は各クラスのスコア)に対する特徴量の寄与を説明します。

    シャープレイ値は,クエリ点についての予測に関して特徴量が原因で生じた平均予測からの偏差に対応します。クエリ点について,すべての特徴に関するシャープレイ値の合計は,予測の平均からの合計偏差に対応します。

    詳細については,機械学習モデルのシャープレイ値を参照してください。

    参照

    Lundberg, Scott M和S. Lee。“解释模型预测的统一方法”神经信息处理系统进展30(2017):4765-774。

    Aas, Kjersti, Martin。朱勒姆和安德斯·洛兰德。解释特征依赖时的个人预测:Shapley值的更精确逼近> arXiv:1903.10464(2019)。

    R2021aで導入