Translate

#51 Section7 分類(4)モデルの分析(1)

ここからは、『plot_model』関数を用い、『compare_models』関数で最も性能が良かったモデルのパフォーマンスを分析していきます。




このパフォーマンス分析も、下記の1行で結果を出してくれます。

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

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


『モデル名』に「best」と記入すると、『compare_models』関数で最も性能が良かったモデル(今回はロジスティック回帰モデル)を選択してくれます。


【よく使う引数①】 'confusion_matrix'

上記の『グラフの種類』に「‘confusion_matrix’」と記入すると、そのモデルの性能評価の元になる「混同行列(Confusion Matrix)」の結果を表示してくれます。




'confusion_matrix'の出力は、縦軸が診断(結果)の患者数、横軸が検査(予測)の患者数を表す混同行列(Confusion Matrix)となります。

「1」は陽性、「0」は陰性です。「0」と「1」は、データ「diabetes」に従っていますので、 データ「diabetes」の仕様を確認してください。 

https://www.analyticsvidhya.com/blog/2021/07/diabetes-prediction-with-pycaret/ 

 



【よく使う引数②】 'auc'

上記の『グラフの種類』に「'auc'」と記入すると、 ROC曲線の下の面積を表すAUC(Area Under the ROC Curve)を表示してくれます。





出力は、下記のようになります。これは、前回の『compare_models』の解説の部分(Section 6 『分類(3)モデルの評価・比較』のスライド6~8)と同様です。




【よく使う引数③】 'feature'

上記の『グラフの種類』に「'feature'」と記入すると、特徴量重要度(feature importance)を可視化するグラフを出力してくれます。

特徴量重要度とは、データ「diabetes」の各説明変数が、分類する上でどれほど重要かを示すものです。

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





出力は、縦軸に特徴量の項目が並び、横軸は『Variable Importance』、すなわち、特徴量重要度をプロットしたグラフです。

Diabetes pedigree function(*糖尿病家系指数)の重要度が非常に高いことがわかります。

*人の年齢と家族歴に基づいて糖尿病を発症する可能性を推定する指数。高いほど、糖尿病を発症する可能性が高くなります。この指数の算出方法は、不明ですが・・・。





また、特徴量重要度の算出方法をまとめたものが、下記のスライドです。PyCaretでは、モデルの種類に応じて適切な方法が自動的に選択され、グラフ化されますから、あまり気にしなくてもいいのですが、余力のある方は、一読してみてください。




plot_model関数の「help」は、あまり役に立ちそうもありません。





コメント