Skip to main content

Linear generalized Huber estimator compatible with scikit-learn.

Project description


Linear Generalized Huber Regressor compatible with scikit-learn. A detailed explanation of the underlying generalized Huber objective function can be found here.

The Generalized Huber Regressor depends on the definition of a invertible link function g and optimizes a term proportional to (y - ginv(X'w))**2 for samples where |g(y) - (X'w)| <= epsilon and a term proportional to |y - ginv(X'w)| for samples where |g(y) - (X'w)| > epsilon, where w is to be optimized and ginv denotes the inverse of g.


class GeneralizedHuberRegressor(epsilon=1.0,max_iter=100,tol=1e-5, scale=10,
fit_intercept=True, link_dict={'g':_log,'ginv':_loginv,'ginvp':_loginvp})

epsilon : float, default 1.0

The parameter epsilon defines the crossover between the rmse type of loss 
and the mae type of loss.  

max_iter : int, default 100

Maximum number of iterations that
scipy.optimize.minimize(method="L-BFGS-B") should run for.

fit_intercept : bool, default True

Whether or not to fit the intercept.

tol : float, default 1e-5

The iteration will stop when max{|proj g_i | i = 1, ..., n} <= tol
where pg_i is the i-th component of the projected gradient.

scale : float, default 10.0

Preconditioner for better numerical stability. Input array is internally 
divided by scale.

link_dict : dictionary, default {'g':_log,'ginv':_loginv,'ginvp':_loginvp}

The link function 'g', it's inverse 'ginv' and the derivative of the 
latter 'ginvp' have to be specified as callables. 
The default link function is g(x) = sign(x)log(1+|x|).              


coef_ : array, shape (n_features,)

Fitted coefficients got by optimizing the generalized Huber loss.

intercept_ : float

The bias.

n_iter_ : int

Number of iterations that
scipy.optimize.minimize(method="L-BFGS-B") has run for.


fit(self, X, y)

Fit the model to the given training features X and target y both given as 

predict(self, X)

Predict using the fitted linear model.

score(self, X, y)

Return the coefficient of determination R^2 of the prediction.


Use the package manager pip to install ghlestimator.

pip install ghlestimator


from ghlestimator import GeneralizedHuberRegressor

ghl = GeneralizedHuberRegressor() # initializes default ghl estimator, y) # fit on features X and target y
ghl.score(X, y) # compute the R^2 score
ghl.predict(X) # make pedictions



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ghlestimator, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size ghlestimator-1.0.0-py3-none-any.whl (7.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ghlestimator-1.0.0.tar.gz (5.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page