XXX Dataset might need to get labelweights parameter which could be
    used by some classifiers

Mapper                              Dataset (S1)
  |                                    \- appendtohistory(item)
  | \-ICAMapper          \             |
MaskMapper                \-------  MappedDataset (S1, Mapper)
   \ forward(ndarray)                  |
                                    MaskedDataset (S1, mask)
									   |
								  NiftiDataset

Splitter                               ErrorFunction
  |                                         |
NFoldSplitter(S2)                     CrossValidation
     \ call(dataset)



   Clf  (LinearSVM)
  train          \- weights 
  predict
      |
 BoostedClassifier    


 Clf  <- optimizeClassifier(optimizer, clf, parameter_to_optimize)



default combiner = average

 OptimizerAlgorithm
      |
 LineSearchOptimizer   GridSearch   FeatureStrip(SensitivityAnalyzer)
                                       after train return ErrorFunction, sensitivity, 


 Optimizer
      |
   ParameterOptimizer(optimizeralgorithm, parameter, classifier)
   BoostedOptimizer(splitter, optimizer)
   

# NOTES

Sensitivity -> RankList (N.argsort)

sens <- Combine
dataset <- selectImportantFeature

RFE(dataset, sensAnalyzer):
do
  sens <- sensAnalyzer(dataset)
  dataset <- selectImportantFeature(dataset, sens)
until the world collapses into
