Browse Source

Fixes, removes debug Code & adds EM v1

Andreas T. Meyer-Berg 4 years ago
parent
commit
8c898421a8

+ 2 - 1
examples/classifier/BasicPacketClassifier.java

@@ -238,11 +238,12 @@ public abstract class BasicPacketClassifier implements PacketSniffer {
 	 * @throws Exception
 	 */
 	protected void finishDataCollection() throws Exception{
+		/**
 		printHashSet("Link-Name", link_mappings);
 		printHashSet("Source-Device", source_mappings);
 		printHashSet("Destination-Port", destination_mappings);
 		printHashSet("Protocol-name", protocol_mappings);
-		
+		*/
 		atts.add(new Attribute("Link-Name", new LinkedList<String>(link_mappings)));//TODO:??
 		atts.add(new Attribute("Source-Device", new LinkedList<String>(source_mappings)));
 		atts.add(new Attribute("Source-Port-number", false));

+ 33 - 6
examples/classifier/EMClustering.java

@@ -37,14 +37,41 @@ public class EMClustering extends BasicPacketClassifier {
 	@Override
 	public double classifyInstance(Instance instance, Packet origin) throws Exception {
 		/**
-		 * Id of the closes cluster centroid
+		 * Id of the closest cluster
 		 */
 		int x = clusterer.clusterInstance(instance);
-		/**
-		 * centroid instance
-		 */
-		System.out.println(origin.getTextualRepresentation()+": "+clusterer.logDensityForInstance(instance));
-		return 0.0;
+
+		/*
+		System.out.println(origin.getTextualRepresentation()+": cluster: "+x+" Dens: "+clusterer.logDensityForInstance(instance)+" joined: ");
+		double[] joined = clusterer.logJointDensitiesForInstance(instance);
+		for(int i = 0;i<joined.length;) {
+			System.out.print(joined[i]);
+			if(++i<joined.length)
+				System.out.print(", ");
+			else
+				System.out.println("");
+		}
+		System.out.println("Distribution:");
+		double[] distribution = clusterer.distributionForInstance(instance);
+		for(int i = 0;i<distribution.length;) {
+			System.out.print(distribution[i]);
+			if(++i<distribution.length)
+				System.out.print(", ");
+			else
+				System.out.println("");
+		}
+		
+		double[] priors = clusterer.clusterPriors();
+		System.out.println("Priors: ");
+		for(int i = 0; i<priors.length; i++) {
+			System.out.println("i="+i+": "+priors[i]);
+		}
+		double[][][] rest = clusterer.getClusterModelsNumericAtts();
+		double[][] posteriori = rest[x];
+		for(int i = 0; i<posteriori.length; i++) {
+			System.out.println("Att "+i+": Mean: "+posteriori[i][0]+" Std: "+posteriori[i][1]+" ???: "+posteriori[i][2]+" Real: "+instance.value(i));
+		}*/
+		return (1-clusterer.distributionForInstance(instance)[x])*800;
 	}
 
 	@Override

+ 0 - 1
examples/classifier/HierarchicalClustering.java

@@ -53,7 +53,6 @@ public class HierarchicalClustering extends BasicPacketClassifier {
 			if(i<posteriori.length-1)
 				System.out.print(", ");
 		}
-		System.out.println();
 		return 1;
 	}
 

+ 1 - 1
examples/classifier/KMeansClustering.java

@@ -53,7 +53,7 @@ public class KMeansClustering extends BasicPacketClassifier {
 	@Override
 	public double classifyInstance(Instance instance, Packet origin) throws Exception {
 		/**
-		 * Id of the closes cluster centroid
+		 * Id of the closest cluster centroid
 		 */
 		int x = clusterer.clusterInstance(instance);
 		/**