package efruchter.project3;
import shared.DataSet;
import shared.DataSetDescription;
import shared.Instance;
import shared.filt.RandomizedProjectionFilter;
import util.linalg.Matrix;
public class IrisRandomProject {
public static void main(String[] args) {
Instance[] instances = DataHard.IRIS;
DataSet set = new DataSet(instances);
System.out.println("Before RA");
System.out.println(set);
// out, in
// for iris, try 4 to 4 first
RandomizedProjectionFilter filter = new RandomizedProjectionFilter(2, 4);
System.out.println(filter.getProjection().transpose());
filter.filter(set);
System.out.println("After RA");
System.out.println(set);
Matrix reverse = filter.getProjection().transpose();
for (int i = 0; i < set.size(); i++) {
Instance instance = set.get(i);
instance.setData(reverse.times(instance.getData()));
}
System.out.println("After reconstructing");
System.out.println(set);
}
}