HeatMiner

Mysterious Data

Visual data mining is a method of refining raw data into visual illusions which help understanding the data and making the right conclusions. Any visualization technology can be used as long as it gives correct impressions of the phenomena hidden into the data. In this case study, we shall use HeatMiner to demonstrate the power of visual data mining by visualizing some mysterious synthetic data as 4D heatmaps.

The image below is a close-up snapshot of a 4D heatmap based on a small amount of data samples. Obviously the data includes some interesting patterns to analyze... Click the image to open a SlideShare presentation going through the case study and finally revealing the secrets of the data.

Close-up of a 4D heatmap created with HeatMiner based on some mysterious data

Flash Heatmaps

Although those snapshot images of 4D heatmaps are quite pretty, you haven't seen anything yet... You can actually rotate and zoom them in your web browser if it supports Flash! Click the links below and try! Hold left mouse button to rotate the view and press ALT to zoom. You can also save a snapshot from the right-button menu.

Those 4D heatmaps were generated with the new HeatMiner 2.0 which will be released in April 2013 at the Cloud'N'Sci.fi marketplace. If you wish to try it earlier with your own data, become our beta-tester! Please contact Pauli Misikangas if you are interested.

Data generator source code

The source code for the mysterious data generator is given below in case you wish to do your own experiments with the data.

public class MysteriousDataGenerator
{
 static double a[] = new double[]{35,63,55};
 static double b[] = new double[]{30,32,35};
 static double c[] = new double[]{45,39,27.5};
 static double d[][]  = new double[][]{new double[]{25,0,-10},new double[]{-25,5,0},new double[]{0,10,-20}};
 static double e[][]  = new double[][]{new double[]{0,30,0},new double[]{0,10,15},new double[]{-20,-15,0}};

 public static void main(String[] args) throws FileNotFoundException
 {
  PrintStream out = new PrintStream(new FileOutputStream(new File(args[0])));
  int N = (args.length>1) ? Integer.parseInt(args[1]) : 10000;
  double g = (args.length>2) ? Double.parseDouble(args[2]) : 2.5;
  Random r = new Random();
  out.println("Value\tX\tY\tZ");
  for(int i=0;i<N;++i)
  {
   int k = r.nextInt(a.length);
   double f = r.nextDouble()*2*Math.PI;
   double x = a[k]+d[k][0]*Math.cos(f)+e[k][0]*Math.sin(f)+r.nextGaussian()*g;
   double y = b[k]+d[k][1]*Math.cos(f)+e[k][1]*Math.sin(f)+r.nextGaussian()*g;
   double z = c[k]+d[k][2]*Math.cos(f)+e[k][2]*Math.sin(f)+r.nextGaussian()*g;
   double v = 100*(Math.cos(f*2)+1)/2;
   out.println(v+"\t"+x+"\t"+y+"\t"+z);
  }
  out.close();
 }
}

HeatMiner® is a trademark of Agience Oy Ltd