EvoLinear.jl

Linear models
Author jeremiedb
Popularity
7 Stars
Updated Last
1 Year Ago
Started In
September 2022

EvoLinear

Documentation CI Status Coverage

ML library implementing linear boosting with L1 and L2 regularization. For tree based boosting, consider EvoTrees.jl.

Supported loss functions:

  • mse (squared-error)
  • logistic (logloss) regression
  • poisson
  • gamma
  • tweedie

Installation

From General Registry

pkg> add EvoLinear

For latest version

pkg> add https://github.com/jeremiedb/EvoLinear.jl

Getting started

Build a configuration struct with EvoLinearRegressor. Then EvoLinear.fit takes x::Matrix and y::Vector as inputs, plus optionally w::Vector as weights and fits a linear boosted model.

using EvoLinear
config = EvoLinearRegressor(loss=:mse, nrounds=10, L1=1e-1, L2=1e-2)
m = EvoLinear.fit(config; x, y, metric=:mse)
p = EvoLinear.predict_proj(m, x)
p = m(x)

Splines - Experimental

Number of knots for selected features is defined through a Dict of the form: Dict(feat_id::Int => nknots::Int).

config = EvoSplineRegressor(loss=:mse, nrounds=10, knots = Dict(1 => 4, 5 => 8))
m = EvoLinear.fit(config; x, y, metric=:mse)
p = m(x')