📚 goscore - Awesome Go Library for Machine Learning
Go Scoring API for PMML.
Detailed Description of goscore
Goscore
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 [email protected].
Tutorial - Deploy Machine Learning Models from R Research to Go Production with PMML
Installation
go get github.com/asafschers/goscore
Usage
Random Forest / Gradient Boosted Model
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
Contributing
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.
License
The gem is available as open source under the terms of the MIT License.