Modellbewertungsmetriken – Gini-Koeffizient | von Tarun_KS | Juni 2023

0
27


Berechnung des Gini-Koeffizienten aus der AUC

Die ROC-Kurve (Receiver Working Attribute) ist die Darstellung der Falsch-Positiv-Charge (FPR). X-Achse und True Optimistic Charge (TPR) aktiviert j-Achse, über verschiedene Schwellenwerte. AUC ist die Fläche unter dieser ROC-Kurve.

Der Gini-Koeffizient wird aus dem AUC-Wert mithilfe der unten genannten Formel abgeleitet:

Gini = 2*AUC -1

class ModelEvaluation:

"""
A category to compute the auc rating & gini of the mannequin for the given predictions.

Attributes
----------
predictions : pd.DataFrame
A DataFrame containing 'Probability_Default' & 'DV' columns.

PD_column : string
Identify of PD column within the dataframe.

label_column: string
Identify of the DV column.

Strategies
-------

plot_roc_curve(): Plots the ROC Curve
compute_auc_gini(): Returns the AUC and Gini coefficient

"""

def __init__(self, predictions_df, PD_column, label_column):
self.predictions = predictions_df
self.PD_column = PD_column
self.label_column = label_column

def plot_roc_curve(self):
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# Compute FPR, TPR, and thresholds
fpr, tpr, thresholds = roc_curve(y_true = self.predictions[self.label_column], y_score = self.predictions[self.PD_column])
# Compute AUC
roc_auc = auc(fpr,tpr)
# Plot the ROC curve
plt.determine()
plt.plot(fpr, tpr, label='ROC curve (AUC = %0.5f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'r--') # Plotting the diagonal line (random classifier)
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Optimistic Charge')
plt.ylabel('True Optimistic Charge')
plt.title('Receiver Working Attribute (ROC) Curve')
plt.legend(loc="decrease proper")
plt.present()

def compute_auc_gini(self):
from sklearn.metrics import roc_auc_score
auc = roc_auc_score(y_score = self.predictions[self.PD_column],y_true = self.predictions[self.label_column])
gini = 2*auc - 1
return auc,gini

Beispieldatensatz für Vorhersagen
model_eval = ModelEvaluation(results_df,PD_column='Prediction_Probability',label_column='Bads')
auc,gini = model_eval.compute_auc_gini()
ROC-Kurve

Gini = 2*0,73043–1 = 0,46086

Gini- und AUC-Wert, erhalten für den obigen Beispieldatensatz.

Zusammenfassung:

  • Der Gini-Koeffizient hat eine intuitive Interpretation. Es stellt den Grad der Trennung zwischen positiven und negativen Klassen dar und erleichtert so das Verständnis und die Kommunikation.
  • Der Gini-Koeffizient stellt ein einziges zusammenfassendes Maß für die Unterscheidungskraft des Modells dar und erfasst die Leistung über alle möglichen Klassifizierungsschwellen hinweg.
  • Der Gini-Koeffizient ist unempfindlich gegenüber der Kalibrierung. Gini berücksichtigt nicht die Kalibrierung von PDs, sondern konzentriert sich ausschließlich auf das Rating. Dies bedeutet, dass Modelle mit schlecht kalibrierten Wahrscheinlichkeiten immer noch hohe Gini-Werte erzielen können.
  • Der Gini-Koeffizient liefert keine Einblicke in die zugrunde liegenden Faktoren, die die Vorhersagen beeinflussen.

Der Gini-Koeffizient ist nur eine von mehreren Metriken, die zur Bewertung der Kreditrisikomodelle in der Finanzbranche verwendet werden. Ein umfassender Bewertungsprozess sollte andere relevante Metriken einbeziehen, um eine robuste und genaue Bewertung der Modellleistung sicherzustellen.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here