2016-08-24 11 views
0

Я использую библиотеку обучения компьютера weka в C# с IKVM. До сих пор это работало очень хорошо, однако у меня возникла проблема с использованием пакета libSVM.LIbSVM of Weka in C# с IKVM

Проблема возникает, когда я хочу, чтобы создать экземпляр libsvm классификатор в C# (класс не найден), как это рекомендуется:

AbstractClassifier classifier = (AbstractClassifier)java.lang.Class.forName("weka.classifiers.functions.LibSVM").newInstance();  

Что я пробовал:

  • Добавьте libsvm.dll и weka.dll к проекту (в пересчете от libsvm.jar и weka.jar)
  • Merge libsvm.jar и weka.jar в одну DLL и добавить его к проекту (с использованием IKVM или ILMerge)

Обратите внимание, что, так как он появляется в результате

WekaPackageManager.getInstalledPackages(); 

Кто каждый преуспел, используя Weka с LibSVM в C# с использованием IKVM пакет установлен?

Спасибо, Botond

ответ

0

Я хава та же проблема, но я нашел решение с сайта: here.

Я использую weka.jar (версия 3.6) и получить пакет libsvm от WEKA 3.8 {HOME}/wekafiles/пакеты/LibSVM

Шаг 1. Вам понадобится: weka.jar, Libsvm.jar (LibSVM/LibSVM.jar), libsvm.jar (LibSVM/lib/libsvm.jar).

Шаг 2. Переименуйте Libsvm.jar в Libsvm1.jar.

Шаг 3. Запуск в IKVM: открытые командной строки и перейдите в папку бин IKVM в

ikvmc.exe -sharedclassloader -target:library weka.jar libsvm.jar LibSVM1.jar 

Шаг 4. Ссылка сгенерированный weka.dll в проекте C#.

Шаг код 5.Sample в C#

LibSVM svm = new LibSVM(); 
svm.setOptions(weka.core.Utils.splitOptions("-S 3 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.001 -P 0.1 -seed 1")); 
svm.buildClassifier(dataset);