#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)』を可視化するグラフを出力してくれます。
特徴量重要度とは、下記のようなものです。
● 機械学習モデルが予測を行う際に、各特徴量がどれくらい重要であるかを示す指標。
● 重要度が高い特徴量は、モデルの予測に大きな影響を与えていると考えられます。
●特徴量重要度を分析することで、モデルがどのような特徴量を重視しているか、また、どの特徴量が予測に貢献しているかを理解することができます。
下記のスライドの出力画面を見ると、このモデルでは、『喫煙者かどうか』という特徴量が重要視されているということがわかります。
下記のスライドの出力画面を見ると、このモデルでは、『喫煙者かどうか』という特徴量が重要視されているということがわかります。
特徴量重要度の算出方法については、下記のスライドを参照してください。
コメント
コメントを投稿