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