diff --git a/scikits/learn/datasets/samples_generator.py b/scikits/learn/datasets/samples_generator.py index 472b4955c78017130c744c8eaf63ac85a7d27092..cea4b91728312b4efb447200b47f89207d6f982f 100644 --- a/scikits/learn/datasets/samples_generator.py +++ b/scikits/learn/datasets/samples_generator.py @@ -11,7 +11,8 @@ Samples generator # License: BSD 3 clause - +def samples_classif(): + pass ###################################################################### # Generate Dataset for test diff --git a/scikits/learn/pipeline.py b/scikits/learn/pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..cbc360407cbe601171cd9ca54bdad36585a38245 --- /dev/null +++ b/scikits/learn/pipeline.py @@ -0,0 +1,44 @@ +from .base import BaseEstimator + +class Pipeline(BaseEstimator): + """ + Univariate ranking Pipeline. + Sequentialy apply a list of methods + + Example: + import datamind.ml.dimred.univRankingGLM as drglm + d=data.twoclassses() + y=d[:,["class"]] + X=d[:,1:] + # permute features + X=X[:,N.random.permutation(X.shape[1])] + print X + methods=[drglm.UnivOneWayAnovaFstat(pval=.3), + drglm.UnivOneWayAnovaFstat(z=1.5), + drglm.UnivOneWayAnovaFstat(dim=2)] + pipeline=UnivRankingPipeline(methods) + pipeline.fit(X,y) + print pipeline.reduce(X) + print pipeline.getSelectedFeatures() + """ + def __init__(self,transformers,estimator): + """ + methods: list of UnivRanking objects, + ie.: with fit/reduce/getSelectedFeatures methods + """ + self.transformers=transformers + self.estimator=estimator + + def fit(self, X,y): + Xt=X + for transformer in self.transformers: + Xt=transformer.fit(Xt,y).transform(Xt) + estimator.fit(Xt,y) + return self + + def predict(X) + Xt=X + for transformer in self.transformers: + Xt=transformer.transform(Xt) + return estimator.predict(Xt,y) +