EvoLinear.jl

Linear models
Author jeremiedb
Popularity
10 Stars
Updated Last
10 Months 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 = 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')