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

追加リソース

ロジスティック回帰の概要
3 種類のロジスティック回帰
ロジスティック回帰と線形回帰

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です