Логистическая регрессия - Точность и Напоминание показывают одинаковое поведение с различной регуляризацией?
Я выполнил поиск по сетке по параметру 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"))