Shark Random Forest против Weka — медленная и низкая точность

Я хотел получить намного более быстрый классификатор случайных лесов, чем у Weka, поэтому я просто попытался Акула (Я не могу использовать коммерческий, как WiseRF). Я знаю, что на Weka есть альтернативный RF-классификатор, но я ожидал гораздо лучших результатов, используя эту знаменитую быструю библиотеку C ++. Мои первые результаты на моем сете:

Training time: Weka > 170s VS Shark > 168s
Prediction results on the same test set: Weka > 90,1% correctly classified VS Shark > accuracy of 0.510824 (!!!!)

Это звучит безумно, так что я уверен, что должно быть много, чтобы улучшить эти результаты.

Я получаю рекомендуемый код для использования акулы, как это:

svn co https://svn.code.sf.net/p/shark-project/code/trunk/Shark
sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev

Я успешно запустил cmake с предложенными опциями:

cmake -DOPT_ENABLE_ATLAS=ON -DOPT_ENABLE_OPENMP=ON

Я использовал базовый пример из документа «RFTutorial.cpp» и просто добавил «trainer.setNTrees (100);» чтобы получить такое же количество лесов, как в моем тесте Weka.

Я использовал предложенный основной Makefile и добавил:

SHARK_ROOT = /home/doxav/Shark
CPPFLAGS   =  -I${BOOST_ROOT} -I${SHARK_ROOT}/include -Wall
CPPFLAGS  += -DNDEBUG -DBOOST_UBLAS_NDEBUG  -O3
LDFLAGS   += -L${SHARK_ROOT}/lib/ -L${BOOST_ROOT}/lib
LDLIBS     = -lshark -lgomp
LDLIBS    += -lboost_serialization -lboost_system -lboost_filesystem -lboost_program_options
CC         =  g++

При запуске моего make-файла я получаю следующую командную строку для g ++:

g++  -I -I/home/xavier/Shark/include -Wall -DNDEBUG -DBOOST_UBLAS_NDEBUG  -O3 -L/home/xavier/Shark/lib/ -L/lib  RFTest.cpp  -lshark -lgomp -lboost_serialization -lboost_system -lboost_filesystem -lboost_program_options -o RFTest

Мне пришлось адаптировать мой CSV-файл из того, который использовался в Weka, чтобы он работал на Shark, поскольку он, очевидно, не принимает строки:

Weka =>
225,#225,138.6,-648,225,0.410451,#2,0,0,0.0256,0.0256,0.15411,?,?,0.045524,0.006503,0.002223,0.782222,1.328889,?,1.017778,0.617778,0,-11,?,-6,-5,176,116,-1430,0,0,0.170455,0.170455,0.136174,?,?,0.041649,0.00595,0.001192,299,269,-659,0,0,0.006689,-0.143509,0.23395,?,?,0.015899,-0.005781,0.002956,?,?,?,?,?,?,?,?,?,?,?,?,?,229,139,-653,0,0,0.026201,0.026201,0.093029,?,?,0.047562,0.006795,0.000937,139,79,-13945,0,0,0,0,-0.094604,?,?,?,?,0.001049,#225

Shark (I removed ? (used for unknown values) and # (I use it to force Weka to interpret some numeric values as nominal out of the box)) =>
225,225,138.6,-648,225,0.410451,2,0,0,0.0256,0.0256,0.15411,,,0.045524,0.006503,0.002223,0.782222,1.328889,,1.017778,0.617778,0,-11,,-6,-5,176,116,-1430,0,0,0.170455,0.170455,0.136174,,,0.041649,0.00595,0.001192,299,269,-659,0,0,0.006689,-0.143509,0.23395,,,0.015899,-0.005781,0.002956,,,,,,,,,,,,,,229,139,-653,0,0,0.026201,0.026201,0.093029,,,0.047562,0.006795,0.000937,139,79,-13945,0,0,0,0,-0.094604,,,,,0.001049,225

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]