2013-01-08 10 views
6

Zapisałem wynik klasyfikacji Weka, klikając prawym przyciskiem myszy na modelu i wybierając "Zapisz model". Teraz chcę go załadować i pracować z aplikacją "JAVA". Jak mogę to zrobić? Modele mogą mieć charakter Naive, drzewo decyzyjne i regresję. Muszę korzystać z tych trzech modeli.Wstawianie modelu Weka do kodu Javy

Wszelkie sugestie lub rozwiązania będą mile widziane.

Dzięki.

Odpowiedz

9

Oto przykład zakładając, że masz model RandomTree zapisany do pliku model.weka (zmiana jakiegokolwiek klasyfikatora i złożyć masz)

RandomTree treeClassifier = (RandomTree) SerializationHelper.read(new FileInputStream("model.weka"))); 
6

Jeśli zapisałeś modelu do pliku w WEKA, można użyć czyta wygenerowany obiekt java. Oto przykład z Losowe Lasu klasyfikatora (wcześniej zapisany do pliku w WEKA):

RandomForest rf = (RandomForest) (new ObjectInputStream(PATH_TO_MODEL_FILE)).readObject(); 

nie zapomnij importu:

import weka.core.Instance; 
import weka.core.Instances; 
import weka.core.Attribute; 
import weka.core.FastVector; 
import weka.classifiers.trees.RandomForest; 
+1

Konstruktor ObjectInputStream jest niezdefiniowany. –

+0

@DamirOlejar jest w io: https://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html – arutaku

+0

tak, to jest ten, który daje błąd! Może nie jest to tylko ścieżka do pliku, który musi tam być? –