Логистическая регрессия - Точность и Напоминание показывают одинаковое поведение с различной регуляризацией?

Я выполнил поиск по сетке по параметру C модели логистической регрессии sklearn. На рисунке показаны мои результаты. Но я не понимаю, почему отзыв и точность показывают одинаковое поведение. Разве точность не должна быть низкой, а отзыв - высоким, если у меня есть сильно регуляризованная модель (низкая C) и наоборот для сильной регуляризации?

точность против отзыва над регуляризацией

редактировать: вот код, который я использовал для создания графика.

scoring = {'precision': make_scorer(precision_score, average="macro"),
           'recall': make_scorer(recall_score, average="macro"), 
           'accuracy':'accuracy'}
logReg = LogisticRegression(random_state=1, max_iter=10000)
parameters = {'penalty':('l1', 'l2'), 'C':[i/1000 for i in range(1,5000,10)]}
gridSearch = GridSearchCV(cv=subjectSplitGen, estimator=logReg, param_grid=parameters, n_jobs=6, scoring=scoring, refit="accuracy")
gridSearch.fit(Xstd, Y)

scoresDf = pd.DataFrame()
results = gridSearch.cv_results_
for precision, recall, accuracy, C, penalty in zip(results["mean_test_precision"], results["mean_test_recall"], results["mean_test_accuracy"], results["param_C"], results["param_penalty"]):
    data = [precision, recall, accuracy, C, penalty]
    df = pd.DataFrame(data=[data], columns=["precision", "recall", "accuracy", "C", "penalty"])
    if scoresDf.empty:
        scoresDf = df
    else:
         scoresDf = pd.concat([scoresDf, df], axis=0)
iplot(scoresDf[scoresDf.penalty=="l2"].drop("penalty", axis=1).set_index("C").iplot(asFigure=True, title="Logistic Regression L2 penalty", xTitle="C", yTitle="score"))

0 ответов

Другие вопросы по тегам