Выбор правильного порогового значения для классификации в логистической регрессии - PullRequest
0 голосов
/ 22 апреля 2019

Я работаю над кликом по объявлению или без него в наборе данных классификации веб-сайтов (довольно сбалансированный).Мне нужно знать правильный порог вероятности для классификации, будут ли посетители сайта нажимать на объявление или нет.

Цель: - Поскольку реклама на сайте стоит дорого, мы хотим убедиться, что реклама показывается только тем, у кого хорошиевероятность конверсии и ненужные клики только сильно увеличат наши затраты.

Итак, теперь мне нужно выбрать пороговое значение таким образом, чтобы у нас было достаточное количество конверсий и было мало кликов по рекламе, которые не конвертировались.

Я запустил логистическую регрессию (1 = рекламанажал 0 = не нажал) и прикрепленное изображение содержит данные accuracy, recall, precision, auc score, f1_score при пороговых значениях 0,4,0,45, 0,5, 0,55, 0,6.

Насколько мне известно, пороговое значение должно быть выбрано, где f1_score является максимальным.Однако, поскольку мы хотим минимизировать клики по объявлениям, которые не конвертируются, мы хотим иметь высокую точность, т.е. как можно меньше ложных срабатываний.

Для этого набора данных оценка f1 максимальна при пороге = 0,45, однако точностьвыше при пороге = 0,55 и 0,6.Какое пороговое значение я должен выбрать, учитывая нашу упомянутую цель?

Попытался найти ответы на вопрос об определении правильного порогового значения, но не нашел ничего, что могло бы удовлетворить.искал stackoverflow и веб.

THRESHOLD=0.4 #0.4 to 0.6 incremented by 0.5

predictions=np.where(classifier.predict_proba(X_test)[:,1] > THRESHOLD,1,0)
pd.DataFrame(data=[accuracy_score(Y_test, predictions), recall_score(Y_test, predictions),
                   precision_score(Y_test, predictions), roc_auc_score(Y_test, predictions), f1_score(Y_test,predictions)], 
             index=["accuracy", "recall", "precision", "roc_auc_score",'f1_score'])

Правильное пороговое значение

...