- Timestamp:
- 09/14/11 20:17:10 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDtrainPPM.java
r171 r184 1 1 package de.ugoe.cs.eventbench.commands; 2 2 3 import java.security.InvalidParameterException;4 3 import java.util.List; 5 4 import java.util.Random; 6 5 7 import de.ugoe.cs.eventbench.data.Event;8 import de.ugoe.cs.eventbench.data.GlobalDataContainer;9 6 import de.ugoe.cs.eventbench.models.PredictionByPartialMatch; 10 import de.ugoe.cs. util.console.Command;7 import de.ugoe.cs.eventbench.models.TrieBasedModel; 11 8 import de.ugoe.cs.util.console.Console; 12 9 … … 17 14 * 18 15 * @author Steffen Herbold 19 * @version 1.016 * @version 2.0 20 17 */ 21 public class CMDtrainPPM implements Command { 18 public class CMDtrainPPM extends AbstractTrainCommand { 19 20 /** 21 * <p> 22 * Escape probability of the PPM model. 23 * </p> 24 */ 25 double probEscape; 26 27 /** 28 * <p> 29 * Maximal Markov order of the PPM model. 30 * </p> 31 */ 32 int maxOrder; 33 34 /** 35 * <p> 36 * Minimal Markov order of the PPM model. Default: 0 37 * </p> 38 */ 39 int minOrder = 0; 22 40 23 41 /* … … 28 46 @Override 29 47 public void help() { 30 Console.println("Usage: trainPPM <modelName> <probEscape> <maxOrder> {<minOrder>}"); 48 Console.println("Usage: trainPPM <modelName> <sequencesName> <probEscape> <maxOrder> {<minOrder>}"); 49 } 50 51 /** 52 * <p> 53 * Handles the parameters probEscape, maxOrder, and minOrder. 54 * </p> 55 * 56 * @see de.ugoe.cs.eventbench.commands.AbstractTrainCommand#handleOptionalParameters(java.util.List) 57 */ 58 @Override 59 void handleAdditionalParameters(List<Object> parameters) throws Exception { 60 probEscape = Double.parseDouble((String) parameters.get(2)); 61 maxOrder = Integer.parseInt((String) parameters.get(3)); 62 if (parameters.size() == 5) { 63 minOrder = Integer.parseInt((String) parameters.get(4)); 64 } 31 65 } 32 66 … … 34 68 * (non-Javadoc) 35 69 * 36 * @see de.ugoe.cs. util.console.Command#run(java.util.List)70 * @see de.ugoe.cs.eventbench.commands.AbstractTrainCommand#createModel() 37 71 */ 38 @SuppressWarnings("unchecked")39 72 @Override 40 public void run(List<Object> parameters) { 41 String modelname; 42 double probEscape; 43 int maxOrder; 44 int minOrder = 0; 45 try { 46 modelname = (String) parameters.get(0); 47 probEscape = Double.parseDouble((String) parameters.get(1)); 48 maxOrder = Integer.parseInt((String) parameters.get(2)); 49 if (parameters.size() == 4) { 50 minOrder = Integer.parseInt((String) parameters.get(3)); 51 } 52 } catch (Exception e) { 53 throw new InvalidParameterException(); 54 } 55 56 List<List<Event<?>>> sequences = null; 57 Object dataObject = GlobalDataContainer.getInstance().getData( 58 "sequences"); 59 60 try { 61 sequences = (List<List<Event<?>>>) dataObject; 62 if (sequences.size() > 0) { 63 if (sequences.get(0).get(0) instanceof Event) { 64 PredictionByPartialMatch model = new PredictionByPartialMatch( 65 maxOrder, minOrder, new Random(), probEscape); 66 model.train(sequences); 67 if (GlobalDataContainer.getInstance().addData(modelname, 68 model)) { 69 Console.traceln("Old data \"" + modelname 70 + "\" overwritten"); 71 } 72 } else { 73 Console.traceln("Illegal use of \"sequences\" parameter in the GlobalDataContainer."); 74 Console.traceln("The parameter should always be of type List<List<Event>>!"); 75 } 76 } 77 } catch (ClassCastException e) { 78 Console.println("Sequences need to be loaded first using parseXML"); 79 } 73 TrieBasedModel createModel() { 74 return new PredictionByPartialMatch(maxOrder, minOrder, new Random(), 75 probEscape); 80 76 } 81 77
Note: See TracChangeset
for help on using the changeset viewer.