Я работаю над приложением для машинного обучения и использую Weka для тестирования, сравнения алгоритмов классификации и т. д. После тестовых операций в Weka я решил использовать дерево решений J48. Я проанализировал обрезанное дерево, созданное Weka, и реализовал его в формате «если-тогда» на C. Однако, если я проверил свои данные, которые использовались в качестве входных данных для Weka в моей программе, результаты не были такими же, как матрица путаницы Weka. В параметрах тестирования Weka я выбрал «Использовать тренировочный набор» и использовал это дерево решений. Вот матрица путаницы и мои результаты:
=== Матрица путаницы ===
a b c d e f g <-- classified as
178 1 0 1 13 2 7 | a = InstantMessaging
4 29 11 1 14 46 25 | b = Mail
1 3 1051 4 32 921 54 | c = Music
4 0 14 9596 10 4 10 | d = P2P
10 1 46 6 607 263 59 | e = SocialMedia
4 1 230 2 44 7619 63 | f = VideoStream
5 0 57 1 57 167 1016 | g = WebBrowsing
Мои результаты от программы:
"instantMessaging" => 210,
"mail" => 33,
"music" => 4933,
"p2p" => 9886,
"socialMedia" => 1220,
"videoStream" => 4958,
"webBrowsing" => 1054,
"total" => 22294,
Хотя все одинаково (дерево решений, данные, значения функций, функции и т. д.), почему я получаю разные результаты? Есть ли такая возможность, что Weka создает/показывает неправильное дерево решений?