package shared.test;
import shared.DataSet;
import shared.Instance;
import shared.filt.IndependentComponentAnalysis;
import util.linalg.Matrix;
import util.linalg.RectangularMatrix;
/**
* A class for testing
* @author Andrew Guillory gtg008g@mail.gatech.edu
* @version 1.0
*/
public class IndepenentComponentAnalysisTest {
/**
* The test main
* @param args ignored
*/
public static void main(String[] args) {
Instance[] instances = new Instance[100];
for (int i = 0; i < instances.length; i++) {
double[] data = new double[2];
data[0] = Math.sin(i/2.0);
data[1] = (Math.random() - .5)*2;
instances[i] = new Instance(data);
}
DataSet set = new DataSet(instances);
System.out.println("Before randomizing");
System.out.println(set);
Matrix projection = new RectangularMatrix(new double[][]{ {.6, .6}, {.4, .6}});
for (int i = 0; i < set.size(); i++) {
Instance instance = set.get(i);
instance.setData(projection.times(instance.getData()));
}
System.out.println("Before ICA");
System.out.println(set);
IndependentComponentAnalysis filter = new IndependentComponentAnalysis(set, 1);
filter.filter(set);
System.out.println("After ICA");
System.out.println(set);
}
}