XGBoost alternatives and similar gems
Based on the "Machine Learning" category.
Alternatively, view XGBoost alternatives based on common mentions on social networks and blogs.
Scout Monitoring - Performance metrics and, now, Logs Management Monitoring with Scout Monitoring
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of XGBoost or a related project?
Popular Comparisons
README
XGBoost Ruby
XGBoost - high performance gradient boosting - for Ruby
Installation
Add this line to your application’s Gemfile:
gem "xgb"
On Mac, also install OpenMP:
brew install libomp
Learning API
Prep your data
x = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [1, 2, 3, 4]
Train a model
params = {objective: "reg:squarederror"}
dtrain = XGBoost::DMatrix.new(x, label: y)
booster = XGBoost.train(params, dtrain)
Predict
dtest = XGBoost::DMatrix.new(x)
booster.predict(dtest)
Save the model to a file
booster.save_model("my.model")
Load the model from a file
booster = XGBoost::Booster.new(model_file: "my.model")
Get the importance of features
booster.score
Early stopping
XGBoost.train(params, dtrain, evals: [[dtrain, "train"], [dtest, "eval"]], early_stopping_rounds: 5)
CV
XGBoost.cv(params, dtrain, nfold: 3, verbose_eval: true)
Set metadata about a model
booster["key"] = "value"
booster.attributes
Scikit-Learn API
Prep your data
x = [[1, 2], [3, 4], [5, 6], [7, 8]]
y = [1, 2, 3, 4]
Train a model
model = XGBoost::Regressor.new
model.fit(x, y)
For classification, use
XGBoost::Classifier
Predict
model.predict(x)
For classification, use
predict_proba
for probabilities
Save the model to a file
model.save_model("my.model")
Load the model from a file
model.load_model("my.model")
Get the importance of features
model.feature_importances
Early stopping
model.fit(x, y, eval_set: [[x_test, y_test]], early_stopping_rounds: 5)
Data
Data can be an array of arrays
[[1, 2, 3], [4, 5, 6]]
Or a Numo array
Numo::NArray.cast([[1, 2, 3], [4, 5, 6]])
Or a Rover data frame
Rover.read_csv("houses.csv")
Or a Daru data frame
Daru::DataFrame.from_csv("houses.csv")
Helpful Resources
Related Projects
Credits
This library follows the Python API, with the get_
and set_
prefixes removed from methods to make it more Ruby-like.
Thanks to the xgboost gem for showing how to use FFI.
History
View the changelog
Contributing
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/ruby-ml/xgboost-ruby.git
cd xgboost-ruby
bundle install
bundle exec rake vendor:all
bundle exec rake test