Rapidminer dans Eclipse

ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 7 nov. 2012 à 10:32
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 9 nov. 2012 à 20:11
Slt tout le monde;

J'ai un projet à réaliser qui consiste à créer un nouvel algorithme de clustering. Dans un premier lieu, je dois appliquer K-means pour obtenir des clusters initiaux puis appliquer d'autres techniques.
J'utilise Eclipse et Rapidminer. J'ai integré rapidminer dans mon eclipse.
Maintenant, je veux appliquer un algorithme de Rapidminer (le k-means) à partir de rapidminer puis récupérer les réultats dans mon code java. Je ne sais pas comment faire ça ? j'ai cherché sur le net mais j'ai rien trouvé. Le rapidminer souffre de la ducumentation. Est ce que quelqu'un peut m'aider, j'ai gaspillé le temps à cherhcer mais j'ai rien trouvé.
merci d'avance.

14 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 nov. 2012 à 10:56
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
7 nov. 2012 à 11:36
Oui, j'ai vu ce lien et j'ai trouvé qu'on peut faire ça mais j'ai pas bien compris le code :
public static IOContainer createInput() {
    // create a wrapper that implements the ExampleSet interface and
    // encapsulates your data
    // ...
    return new IOContainer(new IOObject[] { myExampleSet });
}
public static void main(String[] argv) throws Exception {
    // MUST BE INVOKED BEFORE ANYTHING ELSE !!!
    RapidMiner.init();

    // create the process from the command line argument file
    Process process = new Process(new File(argv[0]));

    // create some input from your application, e.g. an example set
    IOContainer input = createInput();
    
    // run the process on the input
    process.run(input);
}


J'ai pas compris comment compléter ce code, puisque je suis novice en java.
Merci de m'avoir aider.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 nov. 2012 à 14:25
Process process = new Process(new File("Là, il faut que tu mettes le path du fichier de données"));
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
7 nov. 2012 à 18:25
J'ai trouvé une solution mais elle souffre de trois problémes :

import com.rapidminer.RapidMiner;
import com.rapidminer.example.ExampleSet;
import com.rapidminer.operator.ExecutionMode;
import com.rapidminer.operator.IOContainer;
import com.rapidminer.operator.IOObject;
import com.rapidminer.repository.IOObjectEntry;
import com.rapidminer.repository.ProcessEntry;
import com.rapidminer.repository.RepositoryLocation;
import java.lang.String;

public class Model {
 public static void main(String args[]) throws Exception {	 
// this initializes RapidMiner with your repositories available 
RapidMiner.setExecutionMode(ExecutionMode.COMMAND_LINE);
RapidMiner.init();
// loads the process from the repository
RepositoryLocation pLoc = new RepositoryLocation("//C:/Users/faith/Desktop/MyRepository/MyData/kmeansProcess");
ProcessEntry pEntry = (ProcessEntry) pLoc.locateEntry();
String processXML = pEntry.retrieveXML();
Process myProcess = new Process(processXML);
// if need be, you can give the process IOObjects as parameter (this would be the case if you used the process input ports)
RepositoryLocation loc = new RepositoryLocation("//C:/Users/faith/Desktop/MyRepository/MyData/cars");
IOObjectEntry entry = (IOObjectEntry) loc.locateEntry();
IOObject myIOObject= entry.retrieveData(null);

// execute the process and get the resulting objects
IOContainer ioInput = new IOContainer(new IOObject[] {myIOObject});
// just use myProcess.run() if you don't use the input ports for your process
IOContainer ioResult = myProcess.run(ioInput);

// use the result(s) as needed, for example if your process just returns one ExampleSet, use this:
if (ioResult.getElementAt(0) instanceof ExampleSet) {
ExampleSet resultSet = (ExampleSet)ioResult.getElementAt(0);
}	
   }
}

Message d'erreur :
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
COMMAND_LINE cannot be resolved or is not a field
Cannot instantiate the type Process
The method run(IOContainer) is undefined for the type Process

at Model.main(Model.java:82)

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
7 nov. 2012 à 21:45
J'ai résolu le premier probléme par cette instruction :
RapidMiner.setExecutionMode(com.rapidminer.RapidMiner.ExecutionMode.COMMAND_LINE);

il me reste les deux derniers problémes.
merci d'avance.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 nov. 2012 à 08:37
Et quels sont ils ces problèmes ?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
8 nov. 2012 à 09:58
Ces deux erreurs :
Cannot instantiate the type Process :
Process myProcess = new Process(processXML);

The method run(IOContainer) is undefined for the type Process:
IOContainer ioResult = myProcess.run(ioInput);


J'ai,compris les erreurs et quand j'ai consulté les classes de rapidminer, normalement ça marche mais chez moi ne merche pas ?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 nov. 2012 à 10:40
Peut être un problème d'import, vérifies que tu as bien
import com.rapidminer.Process;

et pas
import java.lang.Process;
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
8 nov. 2012 à 11:24
Merci Julien39. Les erreurs sont résolus maintenant. Mais aprés l'execution, il y a des messages d'erreurs comme suit :



8 nov. 2012 10:52:43 com.rapidminer.tools.ParameterService init
INFO: Reading configuration resource com/rapidminer/resources/rapidminerrc.
8 nov. 2012 10:52:44 com.rapidminer.tools.I18N <clinit>
INFO: Set locale to en.
8 nov. 2012 10:52:44 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Property rapidminer.home is not set. Guessing.
8 nov. 2012 10:52:44 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Trying parent directory of 'C:\Program Files\Rapid-I\RapidMiner5\lib\launcher.jar'...gotcha!
8 nov. 2012 10:52:44 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Trying parent directory of 'C:\Program Files\Rapid-I\RapidMiner5\lib\rapidminer.jar'...gotcha!
8 nov. 2012 10:52:56 com.rapidminer.parameter.ParameterTypePassword decryptPassword
WARNING: Password in XML file looks like unencrypted plain text.
8 nov. 2012 10:53:04 com.rapidminer.tools.plugin.Plugin registerOperators
INFO: No operator descriptor specified for plugin Community. Trying plugin initializtation class com.rapidminer.community.CommunityPluginInit.
8 nov. 2012 10:53:04 com.rapidminer.tools.plugin.Plugin registerOperators
WARNING: No operator descriptor defined for: Community
8 nov. 2012 10:53:06 com.rapidminer.tools.jdbc.JDBCProperties
WARNING: Missing database driver class name for ODBC Bridge (e.g. Access)
8 nov. 2012 10:53:06 com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
INFO: JDBC driver ca.ingres.jdbc.IngresDriver not found. Probably the driver is not installed.
8 nov. 2012 10:53:06 com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
INFO: JDBC driver oracle.jdbc.driver.OracleDriver not found. Probably the driver is not installed.
Exception in thread "main" com.rapidminer.repository.RepositoryException: Requested repository C: does not exist.
at com.rapidminer.repository.RepositoryManager.getRepository(RepositoryManager.java:202)
at com.rapidminer.repository.RepositoryLocation.getRepository(RepositoryLocation.java:144)
at com.rapidminer.repository.RepositoryLocation.locateEntry(RepositoryLocation.java:167)
at Model.main(Model.java:25)


Concernant "JDBC driver oracle.jdbc.driver.OracleDriver", je dois le télécharger et l'installer, dans ce site : http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html, je vais installé ojdbc6.jar ; c'est ça ?
Qu'est ce que je dois faire pour les autres erreurs.
Merci d'avance.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 nov. 2012 à 13:43
Peux tu me copier la ligne qui lève l'exception ?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
8 nov. 2012 à 13:56
Lexecption se trouve ici :
 ProcessEntry pEntry = (ProcessEntry) pLoc.locateEntry();
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
8 nov. 2012 à 15:36
l'exeption mainteant est dans la ligne : String processXML = pEntry.retrieveXML();

puisque j'avais un probléme dans le chemin de Repository; je doit mettre :
RepositoryLocation pLoc = new RepositoryLocation("//MyRepository//MyData//kmeansProcess"); 

le message d'erreur :

8 nov. 2012 15:24:59 com.rapidminer.tools.ParameterService init
INFO: Reading configuration resource com/rapidminer/resources/rapidminerrc.
8 nov. 2012 15:24:59 com.rapidminer.tools.I18N <clinit>
INFO: Set locale to en.
8 nov. 2012 15:24:59 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Property rapidminer.home is not set. Guessing.
8 nov. 2012 15:24:59 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Trying parent directory of 'C:\Program Files\Rapid-I\RapidMiner5\lib\launcher.jar'...gotcha!
8 nov. 2012 15:24:59 com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Trying parent directory of 'C:\Program Files\Rapid-I\RapidMiner5\lib\rapidminer.jar'...gotcha!
8 nov. 2012 15:25:03 com.rapidminer.parameter.ParameterTypePassword decryptPassword
WARNING: Password in XML file looks like unencrypted plain text.
8 nov. 2012 15:25:07 com.rapidminer.tools.plugin.Plugin registerOperators
INFO: No operator descriptor specified for plugin Community. Trying plugin initializtation class com.rapidminer.community.CommunityPluginInit.
8 nov. 2012 15:25:07 com.rapidminer.tools.plugin.Plugin registerOperators
WARNING: No operator descriptor defined for: Community
8 nov. 2012 15:25:08 com.rapidminer.tools.jdbc.JDBCProperties
WARNING: Missing database driver class name for ODBC Bridge (e.g. Access)
8 nov. 2012 15:25:08 com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
INFO: JDBC driver ca.ingres.jdbc.IngresDriver not found. Probably the driver is not installed.
Exception in thread "main" java.lang.NullPointerException
at Model.main(Model.java:23)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 nov. 2012 à 08:47
Là, je ne comprends pas, mais je ne connais absolument pas Rapidminer, tu peux consulter ce lien : https://rapid-i.com/rapidforum/index.php?topic=3676.0

En espérant que ça t'aide.

Bon courage
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
9 nov. 2012 à 20:11
Merci Julien39, j'ai corrigé les erreurs.
0
Rejoignez-nous