18 package mining.extraction;
20 import static ca.uqac.lif.cep.Connector.INPUT;
21 import static ca.uqac.lif.cep.Connector.OUTPUT;
25 import ca.uqac.lif.cep.Connector;
26 import ca.uqac.lif.cep.GroupProcessor;
27 import ca.uqac.lif.cep.functions.StreamVariable;
28 import ca.uqac.lif.cep.functions.CumulativeFunction;
29 import ca.uqac.lif.cep.functions.Cumulate;
30 import ca.uqac.lif.cep.functions.FunctionException;
31 import ca.uqac.lif.cep.functions.ApplyFunction;
32 import ca.uqac.lif.cep.functions.FunctionTree;
33 import ca.uqac.lif.cep.functions.IdentityFunction;
34 import ca.uqac.lif.cep.functions.TurnInto;
35 import ca.uqac.lif.cep.peg.MapDistance.ToValueArray;
36 import ca.uqac.lif.cep.peg.Normalize;
37 import ca.uqac.lif.cep.peg.Sequence;
38 import ca.uqac.lif.cep.peg.ml.KMeansFunction;
39 import ca.uqac.lif.cep.peg.ml.ProcessorMiningFunction;
40 import ca.uqac.lif.cep.tmf.Slice;
41 import ca.uqac.lif.cep.util.Numbers;
98 public static void main(String[] args)
throws FunctionException
103 Set<Sequence<String>> sequences =
SequenceReader.readStringSequences(
"strings-1.csv");
107 GroupProcessor vector =
new GroupProcessor(1, 1);
109 GroupProcessor counter =
new GroupProcessor(1, 1);
111 TurnInto one =
new TurnInto(1);
112 counter.associateInput(INPUT, one, INPUT);
113 Cumulate sum_one =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
114 Connector.connect(one, sum_one);
115 counter.associateOutput(OUTPUT, sum_one, OUTPUT);
116 counter.addProcessors(one, sum_one);
118 Slice slicer =
new Slice(
new IdentityFunction(1), counter);
119 ApplyFunction to_normalized_vector =
new ApplyFunction(
120 new FunctionTree(Normalize.instance,
121 new FunctionTree(ToValueArray.instance, StreamVariable.X)));
122 Connector.connect(slicer, to_normalized_vector);
123 vector.associateInput(INPUT, slicer, INPUT);
124 vector.associateOutput(OUTPUT, to_normalized_vector, OUTPUT);
125 vector.addProcessors(slicer, to_normalized_vector);
131 ProcessorMiningFunction<String, Set<?>> pmf =
new ProcessorMiningFunction<String,Set<?>>(vector,
new ApplyFunction(
new KMeansFunction(2)));
137 Set<?> centroids = (Set<?>) pmf.mine(sequences);
138 System.out.println(centroids);
Extract patterns from input streams using data mining and statistical algorithms. ...
Utility class that creates a set of sequences from a file.