#50 Section6 分類(3)モデルの評価・比較
ここからは、『 compare_models 』関数を体験していきます。 PyCaretでは『compare_models』関数により、ライブラリで使用可能なすべてのアルゴリズム(『モデル』と言います)を 交差検証を用いて訓練 し、 評価指標を算出して性能を評価 します。 既に、『setup』で交差検証は、StratifiedKFold(K分割交差検証)と指定しています(デフォルトですが…)ので、関数型API、もしくはオブジェクト指向APIのどちらかの流儀で、下記のようにコードを書くことにより、様々なアルゴリズムの性能評価を比較できます。 この『compare_models』関数は、537行×9列の訓練データ(デフォルトで70%)を用いて、モデルを作成し、231行×9列(デフォルトで30%)のテストデータに適合させた結果の評価指標を算出します。 具体的には、下図のようになります。 左側の列から『モデルの略称』、『モデルの名称』が『正解率(Accuracy)』で降順に表示されています。正解率より右側の列は、それぞれ性能を表す評価指標となっています。 もっと詳しく知りたい方は、下記の『PyCaretの初心者向けまとめ(分類編)』を参照ください。 【参考】 https://qiita.com/shuhigashi/items/cb6816a1da1d347bbdc2 次に、性能評価の元になる 混同行列 を説明します。 下図の左側の表のように、二項分類の結果をまとめた2×2の行列を混同行列(Confusion Matrix)といいます。 横軸に予測、縦軸に結果のそれぞれの二値(二項)、すなわち陽性or陰性の個数が算出された2×2の行列となっています。臨床の現場では、予測を検査結果、結果を診断と表現するとわかりやすいと思います。この混同行列をもとにさらに算出されるのが、性能評価を表す右側の評価指標です。 それぞれを詳しく見ていきましょう。まずは、 ① 正解率(Accuracy) 正解率は、予測結果が実際に当たっていた割合を表します。 具体的に説明すると、ピンクの部分の和、すなわち、検査で陽性かつ診断でも陽性(TP)と検査で陰性かつ診断でも陰性(TN)の和を分子に、分母に全体の和を算出した比率のことです。 ② AUC(Area Under the Curve) AUCとは、主に...