package shared.test; import shared.DataSet; import shared.Instance; import shared.filt.InsignificantComponentAnalysis; import util.linalg.Matrix; /** * A class for testing * @author Andrew Guillory gtg008g@mail.gatech.edu * @version 1.0 */ public class InsignificantComponentAnalysisTest { /** * The test main * @param args ignored */ public static void main(String[] args) { Instance[] instances = { new Instance(new double[] {1,1,0,0,0,0,0,0}), new Instance(new double[] {0,0,1,1,1,0,0,0}), new Instance(new double[] {0,0,0,0,1,1,1,1}), new Instance(new double[] {1,0,1,0,1,0,1,0}), new Instance(new double[] {1,1,0,0,1,1,0,0}), }; DataSet set = new DataSet(instances); System.out.println("Before ICA"); System.out.println(set); InsignificantComponentAnalysis filter = new InsignificantComponentAnalysis(set); System.out.println(filter.getEigenValues()); System.out.println(filter.getProjection().transpose()); filter.filter(set); System.out.println("After ICA"); System.out.println(set); System.out.println(filter.getProjection().transpose()); Matrix reverse = filter.getProjection().transpose(); for (int i = 0; i < set.size(); i++) { Instance instance = set.get(i); instance.setData(reverse.times(instance.getData()).plus(filter.getMean())); } System.out.println("After reconstructing"); System.out.println(set); } }