Как я могу изменить порог для классификации в 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 - р)

Преобразовав неравенство, получим:

р > С б / (С а + С б )

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