Poszukiwanie implementacji algorytmu C4.5 w C ++

Szukałem implementacji C ++Algorytm C4.5, ale jeszcze nie udało mi się znaleźć. Znalazłem QuinlanaC4.5 Release 8, ale jest napisane w C ... czy ktokolwiek widział jakiekolwiek implementacje C4.5 algorytmu open source C ++?

Myślę o przeniesieniuKod źródłowy J48 (lub po prostu piszę otokę wokół wersji C), jeśli nie mogę znaleźć implementacji C ++ na Open Source, ale mam nadzieję, że nie muszę tego robić! Daj mi znać, jeśli natknąłeś się na implementację algorytmu C ++.

Aktualizacja

Rozważałem możliwość napisania acienki wrapper C ++ wokół implementacji C algorytmu C5.0 (C5.0 to ulepszona wersja C4.5). Pobrałem i skompilowałem implementację algorytmu C5.0 w C, ale wygląda na to, że nie jest łatwo przenośny do C ++. Implementacja C wykorzystuje wiele zmiennych globalnych i po prostu napisanie cienkiego opakowania C ++ wokół funkcji C nie spowoduje powstania projektu zorientowanego obiektowo, ponieważ każda instancja klasy będzie modyfikować te same parametry globalne. Innymi słowy:Nie będę miał enkapsulacji i to jest dość podstawowa rzecz, której potrzebuję.

Aby uzyskać hermetyzację, będę musiał utworzyć pełny kod C w C ++, który jest mniej więcej taki sam jak przeniesienie wersji Java (J48) do C ++.

Aktualizacja 2.0

Oto kilka szczególnych wymagań:

Każda instancja klasyfikatora musi hermetyzować własne dane (tj. Brak zmiennych globalnych oprócz stałych).Obsługa jednoczesnego szkolenia klasyfikatorów i jednoczesnej oceny klasyfikatorów.

Oto dobry scenariusz: załóżmy, że wykonuję 10-krotną walidację krzyżową, chciałbym jednocześnie szkolić 10 drzew decyzyjnych z odpowiednim wycinkiem zestawu treningowego. Gdybym po prostu uruchomił program C dla każdego plasterka, musiałbym uruchomić 10 procesów, co nie jest straszne. Jeśli jednak muszę sklasyfikować tysiące próbek danych w czasie rzeczywistym, musiałbym rozpocząć nowy proces dla każdej próbki, którą chcę sklasyfikować, a to nie jest zbyt wydajne.

questionAnswers(3)

yourAnswerToTheQuestion