То же дерево решений, разные результаты

Я работаю над приложением для машинного обучения и использую 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 создает/показывает неправильное дерево решений?


person Anamort    schedule 30.04.2015    source источник
comment
можешь поделиться своим кодом?   -  person Rushdi Shams    schedule 01.05.2015


Ответы (1)


При более глубоком поиске я нашел ответ. Проблема возникла из-за измененной функции, которая создает функцию. Поскольку эта функция была изменена, результат функции в наборе функций не был равен файлу arff. Все результаты теперь логичны.

person Anamort    schedule 07.05.2015