0
Help us understand the problem. What are the problem?

posted at

【機械学習】ロジスティック回帰(Logistics Regression)の関連用語およびsklearnによる二値分類の実践

はじめに

ロジスティック回帰の関連用語が多くて混乱したので、自分用に整理しました。

関連用語

モデル評価における関連用語をまとめました。

Confusion Matrix(混合行列)

クラス分類の予測結果を4つの種類に分けたものです。

  • TP(True Positive):陽性と予測して実際に陽性だったサンプル数
  • FN(False Negative):陰性と予測して実際に陽性だったサンプル数
  • TN(True Negative):陰性と予測して実際に陰性だったサンプル数
  • FP(False Positive):陽性と予測して実際に陰性だったサンプル数

image.png
https://medium.com/@awabmohammedomer/confusion-matrix-b504b8f8e1d1

Accuracy(正解率)

正しく予測されたサンプルの割合(TP+TN/TP+FP+FN+TN)を表す評価指標です。
すべてのクラスが同様に重要なときや各クラスのサンプル数に大きな偏りがないときに使います。

Precision(適合率)

陽性と予測した中で結果も陽性だったサンプルの割合(TP/TP+FP)を表す評価指標です。
誤認識や誤検知(FP)をなるべく抑えたいときに使います。

Recall(再現率)

結果が陽性だった中で予測も陽性だったサンプルの割合(TP/TP+FN)を表す評価指標です。
見逃し(FN)をなるべく抑えたいときに使います。

F1-score(F値)

AccuracyとRecallの調和平均(2precisionrecall/(precision+recall))を表す評価指標です。
AccuracyとRecallが同等に重要なとき、FPとFNの両方とも評価したいとき、不均衡データのモデル精度を評価したいときに使います。

Odds(オッズ)

ある事象の起こる確率pと起こらない確率1-pとの比p/(1-p)を表します。

Odds ratio(オッズ比)

2つの群におけるオッズの比を表します。
ロジスティック回帰においては、変数が1増加した時に「何倍継続されやすくなるか」を表します。

Coefficient(回帰係数)

変数が1変化したときに確率が変動する程度を表します。

ROC(Receiver Operating Characteristic)曲線

モデルの分類性能を示した曲線です。
TPR(True Positive rate)とFPR(False Positive rate)を計算し、縦軸にTPF、横軸にFPFをとった平面にプロットして描画します。

ACU(Area Under the Curve)

ROC曲線のグラフの下の部分の面積を表します。
AUCは0から1までの値をとり、値が1に近いほど分類性能が高いことを示します。

実践

sklearnのLogisticRegressionを学習データに適用します。

from sklearn.linear_model import LogisticRegression

log_model = LogisticRegression()
log_model.fit(scaled_X_train,y_train)

モデル評価のメソッドをいろいろインポートして適用してみます。

from sklearn.metrics import accuracy_score,confusion_matrix,classification_report,plot_confusion_matrix

y_pred = log_model.predict(scaled_X_test)

AccuracyやConfusion Matrixを簡単に出すことができます。
スクリーンショット 2022-07-03 15.44.46.png

また、Accuracyだけではなく、PrecisionやRecallなどもまとめて出すこともできます。
スクリーンショット 2022-07-03 15.47.25.png

ROC曲線も描画することができます。
スクリーンショット 2022-07-03 16.13.38.png

参考資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?