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 = 1×1 cell array
{'g'}
plotLocalEffects(CMdl,X(1,:))

関数predictで、最初の観測値 X(1,:) を 'g' として分類します。関数 plotLocalEffects で、予測に対する上位 10 個の重要な項のローカルな効果を示す横棒グラフを作成します。ローカルな効果の各値は、'g' の分類スコアへの各項の寄与を示します。これは、観測値の分類が 'g' となる事後確率のロジットです。
予測子の線形項と交互作用項の両方を含むバイナリ分類用の 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');
table の最初の 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 内の項のローカルな効果を示す横棒グラフを作成します。ローカルな効果の各値は、予測売価への各項の寄与を示します。
入力引数
一般化加法モデル。ClassificationGAM、CompactClassificationGAM、RegressionGAM、または CompactRegressionGAM モデル オブジェクトとして指定します。
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
R2024a 以降
ターゲットの座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、plotLocalEffects は現在の座標軸 (gca) を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: plotLocalEffects(Mdl,queryPoint,'IncludeInteractions',false,'NumTerms',5) は、Mdl 内の交互作用項は含めずに、Mdl 内の予測子の最も重要な 5 つの線形項を含む棒グラフを作成するように指定します。
プロットにモデルの交互作用項を含むというフラグ。true または false として指定します。
Mdl に交互作用項が含まれる場合、'IncludeInteractions' の既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。
例: 'IncludeInteractions',false
データ型: logical
プロットにモデルの切片項を含むというフラグ。true または false として指定します。
例: 'IncludeIntercept',true
データ型: logical
プロットする項の数。正の整数スカラーとして指定します。plotLocalEffects は、ローカルな効果の絶対値が最も高いものから指定された数の項をプロットします。
例: 'NumTerms',5 は、上位 5 つの重要な項をプロットするように指定します。plotLocalEffects は、ローカルな効果の絶対値を使用して重要度の順序を判定します。
データ型: single | double
バージョン履歴
R2021a で導入プロットのターゲットの座標軸は、入力引数 ax を使用して指定します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)