Obter uma pontuação baixa na ROC AUC, mas uma alta precisão

Usando umLogisticRegression aula emscikit-learn em uma versão doconjunto de dados de atraso de vôo.

eu usopandas para selecionar algumas colunas:

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

Eu preenchoNaN valores com 0:

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

Verifique se as colunas categóricas estão marcadas com o tipo de dados 'categoria':

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

Em seguida, ligueget_dummies() depandas:

df = pd.get_dummies(df)

Agora eu treino e testo meu conjunto de dados:

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)

Depois de ligar para oscore método eu chego em torno de 0,867. No entanto, quando ligo para oroc_auc_score método, recebo um número muito menor de cerca de 0,583

 probabilities = lr.predict_proba(test_set_x)

 roc_auc_score(test_set_y, probabilities[:, 1])

Existe alguma razão pela qual a ROC da AUC é muito menor do que ascore método fornece?

questionAnswers(2)

yourAnswerToTheQuestion