上QQ阅读APP看书,第一时间看更新
Ensemble learning random forest
One-sentence explanation for LOTR fans: if decision trees were Ents, the random forest would be an Entmoot. For everyone else, random forest algorithm works like this:
- Split data into random subsets of equal size, maybe with replacement
- On each of those subsets, build a decision tree, choosing for every split a random feature subset of fixed size
- To perform inference, perform a voting among the trees (classification), or average their predictions (regression)
Such tree ensembles are very popular in certain domains, because their prediction quality beats most other models.
Most likely, this is not the model you want to train on a mobile device, due to the memory and time limitations, but you can still use it for inference thanks to Core ML. The workflow looks like this:
- Pre-train random forest in scikit-learn
- Export the model in the scikit-learn format
- Convert it to the Apple mlmodel format with the help of the coremltool Python package
- Import it in your iOS project using Core ML framework
By the way, if you look at the inner structure of the GameplayKit's tree learner in a debugger or playground, you'll see that it also uses random forest under the hood.