2017-07-17 2 views
0

J'ai utilisé le WEKA GUI Java here pour faire le prétraitement des données. Je voudrais utiliser les mêmes étapes de prétraitement maintenant dans R.Comment charger les étapes de pré-traitement WEKA vers R?

Par exemple, je veux charger le pré-traitement de MultiFilter de WEKA GUI à R. Je ne le trouve pas dans RWeka.

Comment charger les étapes de pré-traitement WEKA vers R?

enter image description here

enter image description here

enter image description here

Répondre

1

Vous pouvez charger l'interface graphique WEKA étapes partiellement RWeka ou avec des outils de ligne de commande Weka qui sont beaucoup plus étendues que les fonctions disponibles dans RWeka. Vous pouvez donc étendre le RWeka avec les commandes de ligne de commande via la commande système dans R. Heureusement, les paramètres de WEKA GUI et de la ligne de commande WEKA sont les mêmes. Je recommande d'extraire le weka-src.jar avec jar xf weka-src.jar pour lire la source.

Il existe de nombreuses fonctions pour multifiltre

java weka.filters.MultiFilter --help 
java weka.filters.unsupervised.attribute.PartitionedMultiFilter --help 

où le second vous permet de spécifier la plage d'attributs. Sinon, ils semblent être identiques.

Ensuite, vous pouvez lancer votre premier filtre discrétiser avec

java weka.filters.unsupervised.attribute.Discretize -F -B 20 -M -1.0 -R 27 -i yourFile.arff 

puis la sortie au prochain Discretize, éventuellement à NumericTransform et Resample. La ligne de commande fournit des instructions sur les fabuleuses commandes de la manière suivante

java weka.filters.unsupervised.attribute.NumericTransform --help 
java weka.filters.unsupervised.attribute.Remove --help 
java weka.filters.unsupervised.instance.Resample --help 
java weka.filters.supervised.instance.Resample --help 

et vous pouvez les consulter à partir de la structure de répertoire ou l'index.

RWeka

paquet RWeka fournit les fonctions

  • Discrétiser()
  • Normaliser()
  • make_Weka_filter() pour créer des interfaces de R à filtres Weka

et il n'y a pas NumericTransform et Remo fonctions ve. Vous devez utiliser leurs arguments de manière non directement en copiant-collant un code java depuis WEKA GUI. Peut-être, une solution pourrait être d'utiliser la commande système et d'exécuter le code Java avec, sans avoir besoin d'apprendre le RWeka lui-même. Il semble y avoir un certain écart entre l'interface graphique de WEKA et le paquet R.

Courir Weka sur Commandline

Même si les commandes manquent par l'interface RWeka, vous pouvez également utiliser le système de commandes dans l'affaire R.Par exemple, vous pouvez exécuter la commande supprimer

java weka.filters.unsupervised.attribute.Remove -i yourfile.arff

tels que

system("java weka.filters.unsupervised.attribute.Remove -i yourfile.arff")

J'ai la configuration suivante here afin que nous puissions exécuter Discrétiser avec le manière suivante.

$ cat $WEKAINSTALL/data/iris.arff |tail 
6.8,3.2,5.9,2.3,Iris-virginica 
6.7,3.3,5.7,2.5,Iris-virginica 
6.7,3.0,5.2,2.3,Iris-virginica 
6.3,2.5,5.0,1.9,Iris-virginica 
6.5,3.0,5.2,2.0,Iris-virginica 
6.2,3.4,5.4,2.3,Iris-virginica 
5.9,3.0,5.1,1.8,Iris-virginica 
% 
% 
% 
$ java weka.filters.unsupervised.attribute.Discretize -i $WEKAINSTALL/data/iris.arff |tail 
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(6.82-7.18]\'','\'(2.96-3.2]\'','\'(4.54-5.13]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(5.74-6.1]\'','\'(2.48-2.72]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica 
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.72-6.31]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(6.46-6.82]\'','\'(3.2-3.44]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(6.1-6.46]\'','\'(2.48-2.72]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica 
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(1.78-2.02]\'',Iris-virginica 
'\'(6.1-6.46]\'','\'(3.2-3.44]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica 
'\'(5.74-6.1]\'','\'(2.96-3.2]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica 
$ 

Quelques informations utiles

  1. Use Weka in your Java code

  2. Télécharger la version Developer Linux, décompressez et lire le README avec de nombreux exemples fabuleux sur l'utilisation de WEKA en particulier sur la ligne de commande .

  3. Wiki here

  4. Peut-être pas pertinent: Generating source code from WEKA classes