chemicalchecker.tool.targetmate.nonconformist.icp.IcpClassifier

class IcpClassifier(nc_function, condition=None, smoothing=True)[source]

Bases: BaseIcp, ClassifierMixin

Inductive conformal classifier.

Parameters

nc_functionBaseScorer

Nonconformity scorer object used to calculate nonconformity of calibration examples and test patterns. Should implement fit(x, y) and calc_nc(x, y).

smoothingboolean

Decides whether to use stochastic smoothing of p-values.

Attributes

cal_xnumpy array of shape [n_cal_examples, n_features]

Inputs of calibration set.

cal_ynumpy array of shape [n_cal_examples]

Outputs of calibration set.

nc_functionBaseScorer

Nonconformity scorer object used to calculate nonconformity scores.

classesnumpy array of shape [n_classes]
List of class labels, with indices corresponding to output columns

of IcpClassifier.predict()

See also

IcpRegressor

References

Examples

>>> import numpy as np
>>> from sklearn.datasets import load_iris
>>> from sklearn.tree import DecisionTreeClassifier
>>> from nonconformist.base import ClassifierAdapter
>>> from nonconformist.icp import IcpClassifier
>>> from nonconformist.nc import ClassifierNc, MarginErrFunc
>>> iris = load_iris()
>>> idx = np.random.permutation(iris.target.size)
>>> train = idx[:int(idx.size / 3)]
>>> cal = idx[int(idx.size / 3):int(2 * idx.size / 3)]
>>> test = idx[int(2 * idx.size / 3):]
>>> model = ClassifierAdapter(DecisionTreeClassifier())
>>> nc = ClassifierNc(model, MarginErrFunc())
>>> icp = IcpClassifier(nc)
>>> icp.fit(iris.data[train, :], iris.target[train])
>>> icp.calibrate(iris.data[cal, :], iris.target[cal])
>>> icp.predict(iris.data[test, :], significance=0.10)
...             
array([[ True, False, False],
    [False,  True, False],
    ...,
    [False,  True, False],
    [False,  True, False]], dtype=bool)

Methods

calibrate

Calibrate conformal predictor based on underlying nonconformity scorer.

fit

Fit underlying nonconformity scorer.

get_params

Get parameters for this estimator.

get_problem_type

predict

Predict the output values for a set of input patterns.

predict_conf

Predict the output values for a set of input patterns, using the confidence-and-credibility output scheme.

set_params

Set the parameters of this estimator.

calibrate(x, y, increment=False)

Calibrate conformal predictor based on underlying nonconformity scorer.

Parameters

xnumpy array of shape [n_samples, n_features]

Inputs of examples for calibrating the conformal predictor.

ynumpy array of shape [n_samples, n_features]

Outputs of examples for calibrating the conformal predictor.

incrementboolean

If True, performs an incremental recalibration of the conformal predictor. The supplied x and y are added to the set of previously existing calibration examples, and the conformal predictor is then calibrated on both the old and new calibration examples.

Returns

None

fit(x, y)

Fit underlying nonconformity scorer.

Parameters

xnumpy array of shape [n_samples, n_features]

Inputs of examples for fitting the nonconformity scorer.

ynumpy array of shape [n_samples]

Outputs of examples for fitting the nonconformity scorer.

Returns

None

get_params(deep=True)

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, significance=None)[source]

Predict the output values for a set of input patterns.

Parameters

xnumpy array of shape [n_samples, n_features]

Inputs of patters for which to predict output values.

significancefloat or None

Significance level (maximum allowed error rate) of predictions. Should be a float between 0 and 1. If None, then the p-values are output rather than the predictions.

Returns

pnumpy array of shape [n_samples, n_classes]

If significance is None, then p contains the p-values for each sample-class pair; if significance is a float between 0 and 1, then p is a boolean array denoting which labels are included in the prediction sets.

predict_conf(x)[source]

Predict the output values for a set of input patterns, using the confidence-and-credibility output scheme.

Parameters

xnumpy array of shape [n_samples, n_features]

Inputs of patters for which to predict output values.

Returns

pnumpy array of shape [n_samples, 3]

p contains three columns: the first column contains the most likely class for each test pattern; the second column contains the confidence in the predicted class label, and the third column contains the credibility of the prediction.

set_params(**params)

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.