2017-07-07 5 views
0

Dans la programmation Java, nous devrions d'abord ajouter weka.jar dans notre classpath, nous pouvons donc appeler tous les classifient ou les algorithmes de cluster dans WEKA sous la forme des codes suivants,Comment importer libsvm dans mon code Java

import weka.classifiers.trees.RandomForest; 
... 
RandomForest rf = new RandomForest(); // RandomForest object 

Malheureusement, nous ne pouvons pas utiliser cette méthode pour importer l'algorithme LibSVM, car il n'y a pas de classe dans weka.jar. Donc, ma question est: Comment importer LibSVM dans mon code Java? Toute aide sera reconnaissante :)

+0

LibSVM est sa seule bibliothèque, vous devrez donc ajouter libsvm.jar à votre bibliothèque de projet. – Steve

+0

Voir https://stackoverflow.com/questions/5223982/how-to-use-libsvm-with-weka-in-my-java-code qui peut être utile. – tale852150

+0

Merci beaucoup, mais ces 2 méthodes ne fonctionnent pas pour moi. a) 'WekaPackageManager' va lancer une exception de ClassNotFoundException; b) Le lien vers 'wlsvm.jar' est faux, et je ne peux pas trouver la classe LibSVM dans' libsvm.jar' et 'weka.jar'. Donc je doute que ces méthodes soient vraiment vérifiées par les auteurs :( – Yongfeng

Répondre

0

Tout d'abord, je voudrais dire qu'il y a tellement de méthodes pour résoudre le problème. La solution que j'ai mentionnée est assez simple, mais les autres réponses de StackOverflow ne sont pas détaillées, ce qui me laisse trop de temps pour vérifier. Je suis donc heureux de le partager avec tous les débutants de WEKA :)

a) Téléchargez le LibSVM.jar à partir de Maven Repository Center. Notez que ce LibSVM.jar est différent du libsvm.jar développé par Chih-Chung Chang and Chih-Jen Lin;

b) Ajoutez le LibSVM.jar au chemin de classe de notre projet Java;

c) Appelez le classificateur LibSVM lorsque vous en avez besoin, consultez le code Java suivant.

import weka.classifiers.functions.LibSVM; // contained in LibSVM.jar 

String path = "file/train.arff"; 
Instances train = DataSource.read(path); // load the dataset 
train.setClassIndex(train.numAttribute()-1); // set class index 

LibSVM svm = new LibSVM(); // load the svm classifier 
svm.buildClassifier(train); 

Evaluation eval = new Evaluation(train); 
eval.crossValidateModel(svm, train, 10, new Random(1)); // 10-fold cross-validation 
0

Voir: https://weka.wikispaces.com/LibSVM

Utilisez le gestionnaire de paquets de Weka pour installer le libsvm. Supposons que "weka.jar" est dans votre dossier en cours, que lancer ceci:

java -cp weka.jar weka.core.WekaPackageManager -install-package LibSVM 

Lors de l'installation, il montre:

[DefaultPackageManager] Tmp file: /tmp/LibSVM1.0.107382715397815864641.zip 
[DefaultPackageManager] Installing: Description.props 
[DefaultPackageManager] Installing: LibSVM.jar 
[DefaultPackageManager] Installing: build_package.xml 
... 

Vous pouvez voir que "LibSVM.jar" est installé quelque part. Dans mon cas, il est à:

/home/john/wekafiles/packages/LibSVM/LibSVM.jar