Translate

#60 Section 15 回帰(4) モデルの分析(1)

 前のSectionでは、『compare_models』関数で評価が高かったモデル『catboost』を『best』と宣言しましたが、今回は、その『best』というモデルを分析していきましょう。




plot_model』関数を使用すると、テストセットにおける学習済みモデルのパフォーマンスをグラフによって分析できます。

plot_model(モデル名, plot='グラフの種類’)

plot_modelのグラフの種類についての詳細は、下記の公式ドキュメントの『Examples by module→Regression』を参照してください。

https://pycaret.gitbook.io/docs/get-started/functions/analyze#regression




さて、続けてPyCaretの公式チュートリアルを見ていきましょう。

『モデル名』は、「best」を指定しています。

『グラフの種類』には、「'residuals'」を指定しています。これにより、『残差プロット(Residuals Plot)』を出力します。




実行して、出力を見てみましょう、残差プロットが表示されます。残差は、実際の値と予測値の差のことです。

散布図(左側)

 横軸: モデルによる予測値(Predicted Values)
 縦軸: 残差(Residuals、実際の値と予測値の差)

この散布図により、予測値の大きさに関わらず残差がランダムに分布しているか(パターンがないか)を確認します。理想的なモデルでは、残差は横軸の0の周りに均等に散らばっています。

ヒストグラム(右側)

散布図の残差の分布を示すヒストグラムが表示されます。
  
回帰分析の基本的な仮定として、残差は正規分布に従うことが望ましいため、ヒストグラムが釣鐘型(正規分布に近い形)になっているかを確認します。

以下の場合、モデルはデータの構造を適切に捉えており、回帰分析の仮定がおおむね満たされていると判断できます。

・ 残差が0の周りに均等に分散している(散布図)
・ 残差に特定のパターンが見られない(散布図)
・ 残差の分布が正規分布に近い(ヒストグラム)




次は、 『グラフの種類』に「‘error’」と記入しています。横軸に実際の値、縦軸に予測値をプロットしたグラフが表示されます。これを、『予測誤差プロット』と言います。予測が完全であれば、傾き1の直線上に点が乗り、点が傾き1の直線周辺に集まるモデルが良いモデルとなります。

左上の凡例には、下記の3つが記載されています。

R2 → 決定係数。目的変数が十分に説明されているかどうかを数値化したもの。

best fit → グラフ上のデータ点(実際の値と予測値のペア)に最もよく適合するように引かれた直線です。

identity → 傾きが 1 の直線を表します。理想的な予測を表す線になります。

散布図の点がidentityの線の周りに集まり、かつbest fitの線がidentityの線に重なっている状態が、最も良いモデルを示します。




次は、『グラフの種類』に「‘feature’」と記入しています。これを実行すると『特徴量重要度(feature importance)』を可視化するグラフを出力してくれます。

特徴量重要度とは、下記のようなものです。

● 機械学習モデルが予測を行う際に、各特徴量がどれくらい重要であるかを示す指標。
● 重要度が高い特徴量は、モデルの予測に大きな影響を与えていると考えられます。
●特徴量重要度を分析することで、モデルがどのような特徴量を重視しているか、また、どの特徴量が予測に貢献しているかを理解することができます。

下記のスライドの出力画面を見ると、このモデルでは、『喫煙者かどうか』という特徴量が重要視されているということがわかります。




特徴量重要度の算出方法については、下記のスライドを参照してください。





次のコードセルでは、plot_model関数のヘルプを呼び出しています。






コメント