Python で精度再現曲線を作成する方法


機械学習で分類モデルを使用する場合、モデルの品質を評価するためによく使用される 2 つの指標は、精度と再現率です。

精度: 肯定的な予測の合計と比較して肯定的な予測を修正します。

これは次のように計算されます。

  • 精度 = 真陽性 / (真陽性 + 偽陽性)

リマインダー: 実際の陽性合計に対する陽性予測の修正

これは次のように計算されます。

  • リマインダー = 真陽性 / (真陽性 + 偽陰性)

特定のモデルの適合率と再現率を視覚化するには、適合率-再現率曲線を作成します。この曲線は、さまざまなしきい値に対する適合率と再現率の間のトレードオフを示しています。

Python の精度再現曲線

次のステップバイステップの例は、Python でロジスティック回帰モデルの精度再現曲線を作成する方法を示しています。

ステップ 1: パッケージをインポートする

まず、必要なパッケージをインポートします。

 from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib. pyplot as plt

ステップ 2: ロジスティック回帰モデルを当てはめる

次に、データセットを作成し、それにロジスティック回帰モデルを当てはめます。

 #create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
                                    n_features= 4 ,
                                    n_informative= 3 ,
                                    n_redundant= 1 ,
                                    random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]

ステップ 3: 適合率と再現率の曲線を作成する

次に、モデルの適合率と再現率を計算し、適合率と再現率の曲線を作成します。

 #calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')

#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')

#displayplot
plt. show () 

Python の精度再現曲線

X 軸は再現率を示し、Y 軸はさまざまなしきい値の精度を示します。

再現率が増加すると、精度が低下することに注意してください。

これは、2 つの指標間の妥協点を表します。モデルの再現率を高めるには、精度を下げる必要があり、その逆も同様です。

追加リソース

Python でロジスティック回帰を実行する方法
Python で混同行列を作成する方法
ROC 曲線を解釈する方法 (例あり)

コメントを追加する

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