plotLocalEffects
構文
説明
plotLocalEffects(
は、指定したクエリ点 Mdl
,queryPoint
)queryPoint
の予測に対する一般化加法モデル Mdl
内の項のローカルな効果を示す棒グラフを作成します。
plotLocalEffects(
では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、Mdl
,queryPoint
,Name,Value
)'IncludeIntercept',true
は棒グラフに切片項を含めるように指定します。
は、棒グラフ オブジェクト b
= plotLocalEffects(___)b
を返します。b
は、棒グラフの作成後に Bar のプロパティ をクエリまたは変更するのに使用します。
例
ローカルな効果のプロット
予測子の線形項が格納されている一変量の一般化加法モデルによる分類を学習させます。メモリ効率の高いモデル オブジェクトを使用して新しい観測値を分類します。その後、関数 plotLocalEffects
を使用して指定のデータ インスタンスについての予測を解釈します。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
レーダー反射が不良 ('b'
) と良好 ('g'
) のどちらであるかを識別する一変量の GAM に学習させます。
Mdl = fitcgam(X,Y);
Mdl
は ClassificationGAM
モデル オブジェクトです。
学習させたモデルのサイズを減らし、メモリの消費量を抑えます。
CMdl = compact(Mdl);
学習データの最初の観測値を分類し、予測に対する Mdl
内の項のローカルな効果をプロットします。
label = predict(CMdl,X(1,:))
label = 1x1 cell array
{'g'}
plotLocalEffects(CMdl,X(1,:))
関数predict
で、最初の観測値 X(1,:)
を 'g'
として分類します。関数 plotLocalEffects
で、予測に対する上位 10 個の重要な項のローカルな効果を示す横棒グラフを作成します。ローカルな効果の各値は、'g'
の分類スコアへの各項の寄与を示します。これは、観測値の分類が 'g'
となる事後確率のロジットです。
GAM のローカルな効果のプロット
予測子の線形項と交互作用項の両方を含むバイナリ分類用の GAM に学習させます。モデル内の線形項と交互作用項の両方を使用してローカルな効果のプロットを作成してから、モデル内の線形項のみを使用してプロットを作成します。ローカルな効果のプロットを作成する際に交互作用項を含めるかどうかを指定します。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
予測子 X
とクラス ラベル Y
を使用して、GAM に学習させます。クラス名を指定することが推奨されます。上位 10 個の最も重要な交互作用項を含めるように指定します。
Mdl = fitcgam(X,Y,'ClassNames',{'b','g'},'Interactions',10);
Mdl
は ClassificationGAM
モデル オブジェクトです。
10 番目の観測値についてのローカルな効果のプロットを作成します。1 つ目のプロットには Mdl
内の線形項と交互作用項の両方を使用し、2 つ目のプロットには Mdl
内の線形項のみを使用します。交互作用項を除外するには、'IncludeInteractions',false
を指定します。
t = tiledlayout(2,1); title(t,'Local Effects Plots for 10th Observation') nexttile plotLocalEffects(Mdl,X(10,:)) title('GAM with linear and interaction terms') nexttile plotLocalEffects(Mdl,X(10,:),'IncludeInteractions',false) title('GAM with only linear terms')
プロットに上位 10 個の重要な項が表示されます。両方のプロットに共通の項が 9 個と共通でない項が 1 個あります。1 つ目のプロットには x1
と x5
の交互作用項が含まれ、2 つ目のプロットには x14
の線形項が含まれています。
ローカルな効果のプロットに切片項を含める
予測子の線形項が格納されている回帰用の一変量の GAM に学習させます。その後、関数 plotLocalEffects
を使用して指定のデータ インスタンスについての予測を解釈します。
データ セット NYCHousing2015
を読み込みます。
load NYCHousing2015
データ セットには、2015 年のニューヨーク市における不動産の売上に関する情報を持つ 10 の変数が含まれます。この例では、これらの変数を使用して売価 (SALEPRICE
) を解析します。
データ セットを前処理します。外れ値を削除し、datetime
配列 (SALEDATE
) を月番号に変換して、応答変数 (SALEPRICE
) を最後の列に移動します。
idx = isoutlier(NYCHousing2015.SALEPRICE); NYCHousing2015(idx,:) = []; NYCHousing2015.SALEDATE = month(NYCHousing2015.SALEDATE); NYCHousing2015 = movevars(NYCHousing2015,'SALEPRICE','After','SALEDATE');
テーブルの最初の 3 行を表示します。
head(NYCHousing2015,3)
BOROUGH NEIGHBORHOOD BUILDINGCLASSCATEGORY RESIDENTIALUNITS COMMERCIALUNITS LANDSQUAREFEET GROSSSQUAREFEET YEARBUILT SALEDATE SALEPRICE _______ ____________ ____________________________ ________________ _______________ ______________ _______________ _________ ________ _________ 2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 0 4750 2619 1899 8 0 2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 0 4750 2619 1899 8 0 2 {'BATHGATE'} {'01 ONE FAMILY DWELLINGS'} 1 1 1287 2528 1899 12 0
売価の一変量の GAM に学習させます。BOROUGH
、NEIGHBORHOOD
、BUILDINGCLASSCATEGORY
および SALEDATE
の変数をカテゴリカル予測子として指定します。
Mdl = fitrgam(NYCHousing2015,'SALEPRICE','CategoricalPredictors',[1 2 3 9]);
Mdl
は RegressionGAM
モデル オブジェクトです。
Mdl
の推定された切片 (定数) 項を表示します。
Mdl.Intercept
ans = 3.7518e+05
切片項の値は、学習データに NaN
値が含まれていなければ、回帰 GAM 内の応答変数の平均に近くなります。応答変数の平均を計算します。
mean(NYCHousing2015.SALEPRICE)
ans = 3.7518e+05
学習データの最初の観測値について売価を予測し、予測に対する Mdl
内の項のローカルな効果をプロットします。プロットに切片項を含めるには、'IncludeIntercept',true
を指定します。
yFit = predict(Mdl,NYCHousing2015(1,:))
yFit = 4.4421e+05
plotLocalEffects(Mdl,NYCHousing2015(1,:),'IncludeIntercept',true)
関数predict
で、最初の観測値の売価を 4.4421e5
として予測します。関数 plotLocalEffects
で、予測に対する Mdl
内の項のローカルな効果を示す横棒グラフを作成します。ローカルな効果の各値は、予測売価への各項の寄与を示します。
入力引数
Mdl
— 一般化加法モデル
ClassificationGAM
モデル オブジェクト | CompactClassificationGAM
モデル オブジェクト | RegressionGAM
モデル オブジェクト | CompactRegressionGAM
モデル オブジェクト
一般化加法モデル。ClassificationGAM
、CompactClassificationGAM
、RegressionGAM
、または CompactRegressionGAM
モデル オブジェクトとして指定します。
queryPoint
— クエリ点
数値の行ベクトル | 単一行テーブル
plotLocalEffects
がローカルな効果をプロットするクエリ点。数値の行ベクトルまたは単一行 table として指定します。
数値の行ベクトルの場合:
queryPoint
の列を構成する変数の順序は、Mdl
に学習させた予測子変数の順序と同じでなければなりません。table (たとえば
Tbl
) を使用してMdl
に学習させた場合、Tbl
に含まれている変数がすべて数値変数であれば、queryPoint
を数値行列にすることができます。
単一行 table の場合:
table (たとえば
Tbl
) を使用してMdl
に学習させた場合、queryPoint
内のすべての予測子変数は変数名およびデータ型がTbl
内の変数と同じでなければなりません。ただし、queryPoint
の列の順序がTbl
の列の順序に対応する必要はありません。数値行列を使用して
Mdl
に学習させた場合、Mdl.PredictorNames
内の予測子名とqueryPoint
内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定するには、名前と値の引数'PredictorNames'
を使用します。queryPoint
内の予測子変数はすべて数値ベクトルでなければなりません。queryPoint
に追加の変数 (応答変数や観測値の重みなど) を含めることができますが、plotLocalEffects
はこれらを無視します。plotLocalEffects
は、文字ベクトルの cell 配列ではない cell 配列や複数列の変数をサポートしません。
データ型: single
| double
| table
ax
— ターゲットの座標軸
Axes
オブジェクト
R2024a 以降
ターゲットの座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、plotLocalEffects
は現在の座標軸 (gca
) を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: plotLocalEffects(Mdl,queryPoint,'IncludeInteractions',false,'NumTerms',5)
は、Mdl
内の交互作用項は含めずに、Mdl
内の予測子の最も重要な 5 つの線形項を含む棒グラフを作成するように指定します。
IncludeInteractions
— 交互作用項を含むというフラグ
true
| false
プロットにモデルの交互作用項を含むというフラグ。true
または false
として指定します。
Mdl
に交互作用項が含まれる場合、'IncludeInteractions'
の既定値は true
です。モデルに交互作用項が含まれない場合、値は false
でなければなりません。
例: 'IncludeInteractions',false
データ型: logical
IncludeIntercept
— 切片項を含むというフラグ
false
(既定値) | true
プロットにモデルの切片項を含むというフラグ。true
または false
として指定します。
例: 'IncludeIntercept',true
データ型: logical
NumTerms
— プロットする項の数
min(M,10)
(M
は Mdl
内の項の数) (既定値) | 正の整数スカラー
プロットする項の数。正の整数スカラーとして指定します。plotLocalEffects
は、ローカルな効果の絶対値が最も高いものから指定された数の項をプロットします。
例: 'NumTerms',5
は、上位 5 つの重要な項をプロットするように指定します。plotLocalEffects
は、ローカルな効果の絶対値を使用して重要度の順序を判定します。
データ型: single
| double
バージョン履歴
R2021a で導入R2024a: ターゲットの座標軸の指定
プロットのターゲットの座標軸は、入力引数 ax
を使用して指定します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)