Sklearn

A bunch of changes made for scikit-learn compatibility, including:
1. Documentation
2. Use of sklearn's data cleaning / checking functions
3. Inheritance from sklearn's base classes