rmcgibbo/mixtape — pull request #257 by kyleabeauchamp (2014-09-08 16:35:07+00:00)
Title: [WIP] Feature selection engine

This is untested but working, but I think it might be worth opening up a PR to open things up.

One major unaddressed need is some way to concisely describe the selected features in a human readable way. E.g. we need some way to see "this distance is important, and so is this torsion".

The driver code looks like this:

```
featurizer = mixtape.subset_featurizer.guess_featurizers(trajectories[0][0], n_choose)
model = mixtape.tica.tICA(lag_time=lag_time, n_components=n_components)
tica_optimizer = mixtape.feature_selection.Optimizer(featurizer, model, n_iter)

featurizer = tica_optimizer.optimize(trajectories)
sklearn.externals.joblib.dump(featurizer, "./featurizer-%d-%d.job" % (n_components, n_choose), compress=True)
```

I also haven't thought very much about code reuse and overlap with sklearn, but I imagine we might be in a different regime because we have lots of fast featurizers that we can compute on-the-fly...