Added initial implementations of StatAccumulator and Tree.
Debug continuousFeatureMSESplit() and add a unit test for it.
Complete continuousFeatureEntropySplit() along with EntropyAccumulator.
Add unit test.
Add .gitignore
Return additional split information from continuousFeatureEntropySplit() and continuousFeatureMSESplit().
Make an CVAccumulator interface, which EntryAccumulator and StatAccumulator implement.
Refactor the MSE splitter and the entropy splitter into a single, generic metric-based splitter.
Create a structure named Data instead of [][]Float64.  Begin writing growing/splitting code.
Add initial code to split dataset while growing trees.
Add unit test for tree.Grow() and tree.Classify().
Use composite entropy of left and right partition (weighted by size) to determine split rather than max of the two.
Add function to shuffle []*Data slices.
Add initial work on ensemble code.
Reformat output of tree.Dump() slightly.
Add glass data that Breiman used as a test case.
Add more flexible CSV reader.  Add test for Kaggle digit recognizer.
Separate tree creation from its addition to ensemble.  Add functions to print tree size stats.
Make ensemble.go depend only on the Classifier interface.
Refactor tree.go so that it has a high level Tree struct implementing Classifer
and a low level treeNode struct.  Make most methods of treeNode private.
Rename glass_data.go to external_data.go since it represents multiple datasets.
Refactor to allow random feature selector strategy to be supplied by callers.
Implement a true "random subspace" feature strategy.
Merge branch 'master' of github.com:mawicks/MLiG