Creating histograms

We will create a histogram for a selected time window with the WIN_SIZE width.

The histogram will hold the HIST_BINS value buckets. The histograms consisting of lists of doubles will be stored in an array list:

int WIN_SIZE = 500; 
int HIST_BINS = 20; 
int current = 0; 
 
List<double[]> dataHist = new ArrayList<double[]>(); 
for(List<Double> sample : rawData){ 
  double[] histogram = new double[HIST_BINS]; 
  for(double value : sample){ 
    int bin = toBin(normalize(value, min, max), HIST_BINS); 
    histogram[bin]++; 
    current++; 
    if(current == WIN_SIZE){ 
      current = 0; 
      dataHist.add(histogram); 
      histogram = new double[HIST_BINS]; 
    } 
  } 
  dataHist.add(histogram); 
} 

The histograms are now completed. The last step is to transform them into Weka's Instance ...

Get Machine Learning in Java - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.