Obteniendo un bajo puntaje ROC AUC pero una alta precisión

Usando unLogisticRegression clase enscikit-learn en una versión de laconjunto de datos de retraso de vuelo.

yo suelopandas para seleccionar algunas columnas:

df = df[["MONTH", "DAY_OF_MONTH", "DAY_OF_WEEK", "ORIGIN", "DEST", "CRS_DEP_TIME", "ARR_DEL15"]]

Yo completoNaN valores con 0:

df = df.fillna({'ARR_DEL15': 0})

Asegúrese de que las columnas categóricas estén marcadas con el tipo de datos 'categoría':

df["ORIGIN"] = df["ORIGIN"].astype('category')
df["DEST"] = df["DEST"].astype('category')

Luego llameget_dummies() depandas:

df = pd.get_dummies(df)

Ahora entreno y pruebo mi conjunto de datos:

from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()

test_set, train_set = train_test_split(df, test_size=0.2, random_state=42)

train_set_x = train_set.drop('ARR_DEL15', axis=1)
train_set_y = train_set["ARR_DEL15"]

test_set_x = test_set.drop('ARR_DEL15', axis=1)
test_set_y = test_set["ARR_DEL15"]

lr.fit(train_set_x, train_set_y)

Una vez que llame alscore método obtengo alrededor de 0,867. Sin embargo, cuando llamo alroc_auc_score método obtengo un número mucho menor de alrededor de 0.583

 probabilities = lr.predict_proba(test_set_x)

 roc_auc_score(test_set_y, probabilities[:, 1])

¿Hay alguna razón por la cual el AUC ROC es mucho más bajo de lo quescore método proporciona?

Respuestas a la pregunta(2)

Su respuesta a la pregunta