Go scoring API for Predictive Model Markup Language (PMML).
Currently supports Neural Network, Decision Tree, Random Forest and Gradient Boosted Models
Will be happy to implement new models by demand, or assist with any other issue.
Contact me here or at aschers@gmail.com.
Tutorial - Deploy Machine Learning Models from R Research to Go Production with PMML
go get github.com/asafschers/goscore
Fetch model from PMML file -
modelXml, _ := ioutil.ReadFile("fixtures/model.pmml")
var model goscore.RandomForest // or goscore.GradientBoostedModel
xml.Unmarshal([]byte(modelXml), &model)
Set features -
features := map[string]interface{}{
"Sex": "male",
"Parch": 0,
"Age": 30,
"Fare": 9.6875,
"Pclass": 2,
"SibSp": 0,
"Embarked": "Q",
}
Score features by model -
score, _ := model.Score(features, "1") // gbm.score doesn't recieve label
Score faster -
runtime.GOMAXPROCS(runtime.NumCPU()) // use all cores
score, _ := model.ScoreConcurrently(features, "1") // parallelize tree traversing
Bug reports and pull requests are welcome on GitHub at https://github.com/asafschers/goscore. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.