Python で混同行列を作成する方法
ロジスティック回帰は、応答変数がバイナリの場合に使用できる回帰の一種です。
ロジスティック回帰モデルの品質を評価する一般的な方法は、混同行列を作成することです。これは、モデルの予測値とテスト データセットの実際の値を示す 2 × 2 の表です。
Python でロジスティック回帰モデルの混同行列を作成するには、 sklearnパッケージのconfusion_matrix()関数を使用できます。
from sklearn import metrics metrics.metrics. confusion_matrix (y_actual, y_predicted)
次の例は、この関数を使用して、Python でロジスティック回帰モデルの混同行列を作成する方法を示しています。
例: Python で混同行列を作成する
応答変数の実際の値とロジスティック回帰モデルによって予測された値を含む次の 2 つのテーブルがあるとします。
#define array of actual values y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] #define array of predicted values y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]
sklearn のConfusion_matrix()関数を使用して、このデータの混同行列を作成できます。
from sklearn import metrics #create confusion matrix c_matrix = metrics. confusion_matrix (y_actual, y_predicted) #print confusion matrix print (c_matrix) [[6 4] [2 8]]
必要に応じて、pandas のcrosstab()関数を使用して、より視覚的に魅力的な混同行列を作成できます。
import pandas as pd y_actual = pd. Series (y_actual, name=' Actual ') y_predicted = pd. Series (y_predicted, name=' Predicted ') #create confusion matrix print (pd. crosstab (y_actual, y_predicted)) Predicted 0 1 Current 0 6 4 1 2 8
列は応答変数の予測値を示し、行は実際の値を示します。
sklearn パッケージの関数を使用して、精度、精度、再現率を計算することもできます。
#print accuracy of model print ( metrics.accuracy_score (y_actual, y_predicted)) 0.7 #print precision value of model print ( metrics.precision_score (y_actual, y_predicted)) 0.667 #print recall value of model print (metrics. recall_score (y_actual, y_predicted)) 0.8
ここで、精度、精度、再現率について簡単に復習します。
- 精度: 正しい予測の割合
- 精度: 陽性予測の合計に対する正しい陽性予測
- リマインダー: 実際の陽性合計に対する陽性予測の修正
この例では、これらの各メトリクスが実際にどのように計算されたかを次に示します。
- 精度: (6+8) / (6+4+2+8) = 0.7
- 精度: 8 / (8+4) = 0.667
- 注意: 8 / (2+8) = 0.8