Skip to content

jeremiedb/EvoLinear.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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')