skglm.experimental.QuantileHuber#

class skglm.experimental.QuantileHuber(quantile=0.5, delta=1.0)[source]#

Quantile Huber loss for quantile regression.

Implements the smoothed pinball loss:

`\begin{split}\rho_\tau^\delta(r) = \begin{cases} \tau\, r - \dfrac{\delta}{2}, & \text{if } r \ge \delta,\\ \dfrac{\tau r^{2}}{2\delta}, & \text{if } 0 \le r < \delta,\\ \dfrac{(1-\tau) r^{2}}{2\delta}, & \text{if } -\delta < r < 0,\\ (\tau - 1)\, r - \dfrac{\delta}{2}, & \text{if } r \le -\delta. \end{cases}\end{split}`
Parameters:
quantilefloat, default=0.5

Desired quantile level between 0 and 1.

deltafloat, default=1.0

Smoothing parameter (0 mean no smoothing).

__init__(quantile=0.5, delta=1.0)[source]#

Methods

__init__([quantile, delta])

full_grad_sparse(X_data, X_indptr, ...)

Compute full gradient for sparse matrices.

get_global_lipschitz(X, y)

get_global_lipschitz_sparse(X_data, ...)

Compute global Lipschitz constant for sparse matrices.

get_lipschitz(X, y)

get_lipschitz_sparse(X_data, X_indptr, ...)

Compute Lipschitz constants for sparse matrices.

get_spec()

Specify the numba types of the class attributes.

gradient_scalar(X, y, w, Xw, j)

Compute gradient w.r.t.

gradient_scalar_sparse(X_data, X_indptr, ...)

Compute gradient w.r.t.

initialize(X, y)

Pre-computations before fitting on X and y.

initialize_sparse(X_data, X_indptr, X_indices, y)

Pre-computations before fitting on X and y when X is a sparse matrix.

intercept_update_step(y, Xw)

params_to_dict()

Get the parameters to initialize an instance of the class.

value(y, w, Xw)

Compute the quantile Huber loss value.