package students.filters;

import weka.core.Attribute;
import weka.core.Instances;
import weka.core.RevisionUtils;
import weka.filters.SimpleBatchFilter;

public class IndependentComponetFilter extends SimpleBatchFilter {
	
	static final long serialVersionUID = 0;

	@Override
	public String globalInfo() {
		return "Performs Independent Component Analysis and transformation " +
				"of the data using the FastICA algorithm ignoring the class " +
				"label.";
	}

	@Override
	protected Instances determineOutputFormat(Instances inputFormat)
			throws Exception {
		return new Instances(inputFormat, 0);
	}

	@Override
	protected Instances process(Instances instances) throws Exception {
		
		// Test that there is no missing data and only contains numeric attributes
				
		// TODO: needs args for max_iter, tolerance
		
		// Convert instances to matrix ignoring class labels
		
		// Process the data through FastICA

		// Convert results back to Instances
		
		return null;
	}
	
	public String getRevision() {
	    return RevisionUtils.extract("$Revision: 1.0 $");
	  }

}

@@ -216,18 +216,51 @@
 lter %7B%0A%09
-%0A%09
+/** for serialization. */%0A%09private 
 static f
@@ -292,10 +292,32 @@
 D = 
-0;
+-5416810876710954131L;%0A%09
 %0A%0A%09@

Add auto-generated class UID to ICA filter