bqlearn.density_ratio.IPDR

class bqlearn.density_ratio.IPDR(estimator, *, n_estimators=10, exploit_iterative_learning=False, window=1, pdr_estimator=None, method='probabilities')[source]

An Iterative Probabilistic Density Ratio Biquality Classifier.

An IDR using a Probabilistic Classifier [1] to reweigth untrusted examples [2].

Parameters:
estimatorobject

The estimator from which the IDR classifier is built. Support for sample weighting and probability prediction is required.

n_estimatorsint, default=10

Maximum number of trained estimators on reweighted samples.

exploit_iterative_learning: boolean, default=False

If the estimator supports iterative learning with warm_start, exploit it by computing new weights for every epoch when fitting estimator.

window: int, default=1

Number of previous losses used to compute sample weights.

pdr_estimatorobject, default=None

The base estimator from which the weights are estimated thanks to pdr. If None, then the base estimator is LogisticRegression.

method: {‘odds’, ‘probabilites’}, default=’probabilites’

Use the odd ratios simplification to avoid the division when computing the ratio of conditional probabilities. This method is not adequate for estimators using a different link function than the logit.

Attributes:
estimator_classifier

The final fitted estimator.

classes_ndarray of shape (n_classes,)

The classes labels.

n_classes_int

The number of classes.

References

[1]
  1. Bickel, M. Bruckner, T. Scheffer, “Discriminative Learning for Differing Training and Test Distributions”, 2007

[2]

Jiang, Lu, et al. “Mentornet: Learning data-driven curriculum for very deep neural networks on corrupted labels.” International conference on machine learning. PMLR, 2018.

Methods

decision_function(X)

Call decision function of the final_estimator.

fit(X, y[, sample_quality])

Fit the reweighted model.

get_params([deep])

Get parameters for this estimator.

predict(X)

Predict the classes of X.

predict_log_proba(X)

Predict log probability for each possible outcome.

predict_proba(X)

Predict probability for each possible outcome.

score(X, y[, sample_weight])

Return the mean accuracy on the given test data and labels.

set_params(**params)

Set the parameters of this estimator.

decision_function(X)[source]

Call decision function of the final_estimator.

Parameters:
Xarray-like, shape (n_samples, n_features)

The input samples.

Returns:
yndarray, shape (n_samples,)

The predicted classes.

fit(X, y, sample_quality=None)[source]

Fit the reweighted model.

Parameters:
X{array-like, sparse matrix} of shape (n_samples, n_features)

The training input samples. Sparse matrix can be CSC, CSR, COO, DOK, or LIL. COO, DOK, and LIL are converted to CSR.

yarray-like of shape (n_samples,)

The target labels.

sample_qualityarray-like, shape (n_samples,)

Sample qualities.

Returns:
selfobject
get_params(deep=True)[source]

Get parameters for this estimator.

Parameters:
deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:
paramsdict

Parameter names mapped to their values.

predict(X)[source]

Predict the classes of X.

Parameters:
Xarray-like, shape (n_samples, n_features)

The input samples.

Returns:
yndarray, shape (n_samples,)

The predicted classes.

predict_log_proba(X)[source]

Predict log probability for each possible outcome.

Parameters:
Xarray-like, shape (n_samples, n_features)

The input samples.

Returns:
log_parray, shape (n_samples, n_classes)

Array with log prediction probabilities.

predict_proba(X)[source]

Predict probability for each possible outcome.

Parameters:
Xarray-like, shape (n_samples, n_features)

The input samples.

Returns:
parray, shape (n_samples, n_classes)

The class probabilities of the input samples. The order of the classes corresponds to that in the attribute classes_.

score(X, y, sample_weight=None)[source]

Return the mean accuracy on the given test data and labels.

In multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.

Parameters:
Xarray-like of shape (n_samples, n_features)

Test samples.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

True labels for X.

sample_weightarray-like of shape (n_samples,), default=None

Sample weights.

Returns:
scorefloat

Mean accuracy of self.predict(X) w.r.t. y.

set_params(**params)[source]

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:
**paramsdict

Estimator parameters.

Returns:
selfestimator instance

Estimator instance.