Как я могу изменить порог для классификации в NaiveBayesMultinomial или вычислить матрицу путаницы вручную в Weka
Я работаю над проектом по анализу спам-фильтров и в настоящее время использую классификатор NaiveBayesMultinomial для классификации спама из не-спама путем подсчета частоты появления слова.
Дело в том, что WEKA установил 0,5 в качестве порога для классификации по умолчанию. Однако классификация не-спама в спаме наносит гораздо больший вред, чем наоборот, и я хочу отрегулировать порог и посмотреть, как меняется матрица путаницы.
У меня много тысяч данных, и я понятия не имею, могу ли я изменить порог в этом алгоритме. И если мне нужно работать вручную, как я собираюсь использовать результат, предоставленный WEKA, для вычисления показателя путаницы?
Заранее большое спасибо!
Вот резюме, и я не знаю, полезно это или нет. Оценка на тестовом сплите
Correctly Classified Instances 2715 98.4766 %
Incorrectly Classified Instances 42 1.5234 %
Kappa statistic 0.9679
Mean absolute error 0.0184
Root mean squared error 0.1136
Relative absolute error 3.8317 %
Root relative squared error 23.2509 %
Total Number of Instances 2757
Детальная точность по классу
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0.998 0.035 0.978 0.998 0.988 0.998 ham
0.965 0.002 0.996 0.965 0.98 0.999 spam
Взвешенная средняя 0,985 0,022 0,985 0,985 0,985 0,998
Путаница Матрицаa b <-- classified as
1669 4 | a = ham
38 1046 | b = spam
3 ответа
Я искал вокруг Google, и кажется, что это вряд ли сделать в WEKA.
Но это все еще выполнимо сделать с помощью "Test option" -> "More option" -> "output outputtions". Тогда это даст мне возможность получить результат каждого тестового образца.
Оттуда я могу использовать другой инструмент для остальной части работы.
Вы можете изменить его на экране анализа затрат и выгод. Вы щелкаете правой кнопкой мыши по своим результатам в списке результатов и выбираете визуализацию пороговой кривой.
Внутри есть ползунок для перемещения порога, и ваша новая матрица путаницы находится в нижнем левом углу.
Порог вероятности можно скорректировать, используя классификацию с учетом затрат.
Если желаемый порог равен k , установите стоимость ложных срабатываний μ и стоимость ложных отрицаний λ таким образом, чтобы:
k = μ / (μ + λ)
Например, если вы хотите порог 0,4, установите μ на 2 и λ на 3. Другими словами, используйте матрицу стоимости:
0 3
2 0
Ссылка: Больше интеллектуального анализа данных с Weka — Урок 4.6 Классификация с учетом затрат и обучение с учетом затрат (слайды).
Пояснение к формуле:
В наивном Байесе с двумя классами, если класс A имеет вероятность p, то класс B имеет вероятность (1 - p).
Если порог равен 0,5, мы относимся к классу А, если получаем p > 0,5, или, другими словами, p > (1 - p).
Предположим, что стоимость неправильной классификации A как B (ложноотрицательная) равна Ca , а стоимость ошибочной классификации B как A (ложноположительная) равна Cb. Затем мы классифицируем как класс A только в том случае, если взвешенная по вероятности стоимость неправильной классификации A как B больше, чем взвешенная по вероятности стоимость ошибочной классификации B как A. Другими словами, классифицируем как A, если это верно:
С а * р > С б * (1 - р)
Преобразовав неравенство, получим:
р > С б / (С а + С б )