Core Utilities

The skfb.core.array module implements NDArrays for both rejection-aware and rejection-unaware evaluation. They expand numpy NDArrays by adding sparse and dense attributes masking fallbacks and collecting fallback statistics.

class skfb.core.array.FBNDArray(predictions, fallback_mask=None)[source]

Same as numpy ndarray but stores also additional fallback information.

FBNDArrays are usually returned by predict, predict_proba, or predict_log_proba methods of fallback meta-estimators.

Parameters:
  • predictions (array-like of shape (n_samples,)) – An array of base-estimator predictions.

  • fallback_mask (array-like of shape (n_samples,) or (1, n_samples), or None) – Array mask indicating whether i-th sample was rejected by a fallback meta-estimator. If None, defaults to all-zeros. Further stored as sparse arrays by the fallback_mask property.

Examples

>>> import numpy as np
>>> from skfb.core import array as ska
>>> y = np.array([0, 1, 0, 1, 0, 1])
>>> f = [0, 0, 0, 0, 1, 1]
>>> y_pred = ska.fbarray(y, f)
>>> y_pred
FBNDArray([0, 1, 0, 1, 0, 1])
>>> y_pred.get_dense_fallback_mask()
array([False, False, False, False,  True,  True])
>>> y_pred.get_dense_neg_fallback_mask()
array([ True,  True, False, False, False, False])
>>> y_pred.fallback_rate
0.3333333333333333
>>> y_pred.as_comb(fallback_label=2)
array([0, 1, 0, 1, 2, 2])
Attributes:
T

View of the transposed array.

base

Base object if memory is from some other object.

ctypes

An object to simplify the interaction of the array with the ctypes module.

data

Python buffer object pointing to the start of the array’s data.

device
dtype

Data-type of the array’s elements.

fallback_mask

Returns the sparse fallback mask.

fallback_rate

Calculates the sparsity of the fallback mask.

flags

Information about the memory layout of the array.

flat

A 1-D iterator over the array.

imag

The imaginary part of the array.

itemsize

Length of one array element in bytes.

mT

View of the matrix transposed array.

nbytes

Total bytes consumed by the elements of the array.

ndim

Number of array dimensions.

real

The real part of the array.

shape

Tuple of array dimensions.

size

Number of elements in the array.

strides

Tuple of bytes to step in each dimension when traversing an array.

Methods

all([axis, out, keepdims, where])

Returns True if all elements evaluate to True.

any([axis, out, keepdims, where])

Returns True if any of the elements of a evaluate to True.

argmax([axis, out, keepdims])

Return indices of the maximum values along the given axis.

argmin([axis, out, keepdims])

Return indices of the minimum values along the given axis.

argpartition(kth[, axis, kind, order])

Returns the indices that would partition this array.

argsort([axis, kind, order, stable])

Returns the indices that would sort this array.

as_comb([fallback_label])

Returns an ndarray of both predictions and fallbacks based on the mask.

astype(dtype[, order, casting, subok, copy])

Copy of the array, cast to a specified type.

byteswap([inplace])

Swap the bytes of the array elements

choose(choices[, out, mode])

Use an index array to construct a new array from a set of choices.

clip([min, max, out])

Return an array whose values are limited to [min, max].

compress(condition[, axis, out])

Return selected slices of this array along given axis.

conj()

Complex-conjugate all elements.

conjugate()

Return the complex conjugate, element-wise.

copy([order])

Return a copy of the array.

cumprod([axis, dtype, out])

Return the cumulative product of the elements along the given axis.

cumsum([axis, dtype, out])

Return the cumulative sum of the elements along the given axis.

diagonal([offset, axis1, axis2])

Return specified diagonals.

dot(other, /[, out])

Refer to numpy.dot() for full documentation.

dump(file)

Dump a pickle of the array to the specified file.

dumps()

Returns the pickle of the array as a string.

fill(value)

Fill the array with a scalar value.

flatten([order])

Return a copy of the array collapsed into one dimension.

get_dense_fallback_mask()

Converts fallback_mask to 1D ndarray.

get_dense_neg_fallback_mask()

Returns negation of fallback_mask (acceptance mask) as 1D ndarray.

getfield(dtype[, offset])

Returns a field of the given array as a certain type.

item(*args)

Copy an element of an array to a standard Python scalar and return it.

max([axis, out, keepdims, initial, where])

Return the maximum along a given axis.

mean([axis, dtype, out, keepdims, where])

Returns the average of the array elements along given axis.

min([axis, out, keepdims, initial, where])

Return the minimum along a given axis.

nonzero()

Return the indices of the elements that are non-zero.

partition(kth[, axis, kind, order])

Partially sorts the elements in the array in such a way that the value of the element in k-th position is in the position it would be in a sorted array.

prod([axis, dtype, out, keepdims, initial, ...])

Return the product of the array elements over the given axis

put(indices, values[, mode])

Set a.flat[n] = values[n] for all n in indices.

ravel([order])

Return a flattened array.

repeat(repeats[, axis])

Repeat elements of an array.

reshape(a.reshape)

Returns an array containing the same data with a new shape.

resize(a.resize)

Change shape and size of array in-place.

round([decimals, out])

Return a with each element rounded to the given number of decimals.

searchsorted(v[, side, sorter])

Find indices where elements of v should be inserted in a to maintain order.

setfield(val, dtype[, offset])

Put a value into a specified place in a field defined by a data-type.

setflags([write, align, uic])

Set array flags WRITEABLE, ALIGNED, WRITEBACKIFCOPY, respectively.

sort([axis, kind, order, stable])

Sort an array in-place.

squeeze([axis])

Remove axes of length one from a.

std([axis, dtype, out, ddof, keepdims, ...])

Returns the standard deviation of the array elements along given axis.

sum([axis, dtype, out, keepdims, initial, where])

Return the sum of the array elements over the given axis.

swapaxes(axis1, axis2, /)

Return a view of the array with axis1 and axis2 interchanged.

take(indices[, axis, out, mode])

Return an array formed from the elements of a at the given indices.

to_device(device, /, *[, stream])

For Array API compatibility.

tobytes([order])

Construct Python bytes containing the raw data bytes in the array.

tofile(fid, /[, sep, format])

Write array to a file as text or binary (default).

tolist()

Return the array as an a.ndim-levels deep nested list of Python scalars.

trace([offset, axis1, axis2, dtype, out])

Return the sum along diagonals of the array.

transpose(*axes)

Returns a view of the array with axes transposed.

var([axis, dtype, out, ddof, keepdims, ...])

Returns the variance of the array elements, along given axis.

view([dtype][, type])

New view of array with the same data.

as_comb(fallback_label=-1)[source]

Returns an ndarray of both predictions and fallbacks based on the mask.

property fallback_mask

Returns the sparse fallback mask.

property fallback_rate

Calculates the sparsity of the fallback mask.

get_dense_fallback_mask()[source]

Converts fallback_mask to 1D ndarray.

get_dense_neg_fallback_mask()[source]

Returns negation of fallback_mask (acceptance mask) as 1D ndarray.

class skfb.core.array.ENDArray(predictions, ensemble_mask=None)[source]

Numpy ndarray storing masks of predicted samples per estimator.

ENDArrays are usually returned by predict, predict_proba, or predict_log_proba methods of ensemble meta-estimators.

Parameters:
  • predictions (array-like of shape (n_samples,)) – An array of base-estimator predictions.

  • ensemble_mask (array-like of shape (n_samples, n_estimators), or None) – Array mask indicating which estimator decided to make a prediction on the i-th sample Defaults to an empty matrix. Further stored as a sparse array by the ensemble_mask property.

Attributes:
T

View of the transposed array.

acceptance_rates

Returns an ndarray of ratios of accepted samples per estimator.

base

Base object if memory is from some other object.

ctypes

An object to simplify the interaction of the array with the ctypes module.

data

Python buffer object pointing to the start of the array’s data.

device
dtype

Data-type of the array’s elements.

ensemble_mask

Returns the sparse ensemble mask.

flags

Information about the memory layout of the array.

flat

A 1-D iterator over the array.

imag

The imaginary part of the array.

itemsize

Length of one array element in bytes.

mT

View of the matrix transposed array.

nbytes

Total bytes consumed by the elements of the array.

ndim

Number of array dimensions.

real

The real part of the array.

shape

Tuple of array dimensions.

size

Number of elements in the array.

strides

Tuple of bytes to step in each dimension when traversing an array.

Methods

all([axis, out, keepdims, where])

Returns True if all elements evaluate to True.

any([axis, out, keepdims, where])

Returns True if any of the elements of a evaluate to True.

argmax([axis, out, keepdims])

Return indices of the maximum values along the given axis.

argmin([axis, out, keepdims])

Return indices of the minimum values along the given axis.

argpartition(kth[, axis, kind, order])

Returns the indices that would partition this array.

argsort([axis, kind, order, stable])

Returns the indices that would sort this array.

astype(dtype[, order, casting, subok, copy])

Copy of the array, cast to a specified type.

byteswap([inplace])

Swap the bytes of the array elements

choose(choices[, out, mode])

Use an index array to construct a new array from a set of choices.

clip([min, max, out])

Return an array whose values are limited to [min, max].

compress(condition[, axis, out])

Return selected slices of this array along given axis.

conj()

Complex-conjugate all elements.

conjugate()

Return the complex conjugate, element-wise.

copy([order])

Return a copy of the array.

cumprod([axis, dtype, out])

Return the cumulative product of the elements along the given axis.

cumsum([axis, dtype, out])

Return the cumulative sum of the elements along the given axis.

diagonal([offset, axis1, axis2])

Return specified diagonals.

dot(other, /[, out])

Refer to numpy.dot() for full documentation.

dump(file)

Dump a pickle of the array to the specified file.

dumps()

Returns the pickle of the array as a string.

fill(value)

Fill the array with a scalar value.

flatten([order])

Return a copy of the array collapsed into one dimension.

getfield(dtype[, offset])

Returns a field of the given array as a certain type.

item(*args)

Copy an element of an array to a standard Python scalar and return it.

max([axis, out, keepdims, initial, where])

Return the maximum along a given axis.

mean([axis, dtype, out, keepdims, where])

Returns the average of the array elements along given axis.

min([axis, out, keepdims, initial, where])

Return the minimum along a given axis.

nonzero()

Return the indices of the elements that are non-zero.

partition(kth[, axis, kind, order])

Partially sorts the elements in the array in such a way that the value of the element in k-th position is in the position it would be in a sorted array.

prod([axis, dtype, out, keepdims, initial, ...])

Return the product of the array elements over the given axis

put(indices, values[, mode])

Set a.flat[n] = values[n] for all n in indices.

ravel([order])

Return a flattened array.

repeat(repeats[, axis])

Repeat elements of an array.

reshape(a.reshape)

Returns an array containing the same data with a new shape.

resize(a.resize)

Change shape and size of array in-place.

round([decimals, out])

Return a with each element rounded to the given number of decimals.

searchsorted(v[, side, sorter])

Find indices where elements of v should be inserted in a to maintain order.

setfield(val, dtype[, offset])

Put a value into a specified place in a field defined by a data-type.

setflags([write, align, uic])

Set array flags WRITEABLE, ALIGNED, WRITEBACKIFCOPY, respectively.

sort([axis, kind, order, stable])

Sort an array in-place.

squeeze([axis])

Remove axes of length one from a.

std([axis, dtype, out, ddof, keepdims, ...])

Returns the standard deviation of the array elements along given axis.

sum([axis, dtype, out, keepdims, initial, where])

Return the sum of the array elements over the given axis.

swapaxes(axis1, axis2, /)

Return a view of the array with axis1 and axis2 interchanged.

take(indices[, axis, out, mode])

Return an array formed from the elements of a at the given indices.

to_device(device, /, *[, stream])

For Array API compatibility.

tobytes([order])

Construct Python bytes containing the raw data bytes in the array.

tofile(fid, /[, sep, format])

Write array to a file as text or binary (default).

tolist()

Return the array as an a.ndim-levels deep nested list of Python scalars.

trace([offset, axis1, axis2, dtype, out])

Return the sum along diagonals of the array.

transpose(*axes)

Returns a view of the array with axes transposed.

var([axis, dtype, out, ddof, keepdims, ...])

Returns the variance of the array elements, along given axis.

view([dtype][, type])

New view of array with the same data.

property acceptance_rates

Returns an ndarray of ratios of accepted samples per estimator.

property ensemble_mask

Returns the sparse ensemble mask.

The skfb.core.exceptions module defines core exceptions and warnings.

class skfb.core.exceptions.SKFBException[source]

Base exception for scikit-fallback estimators.

Attributes:
args

Methods

add_note

Exception.add_note(note) -- add a note to the exception

with_traceback

Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.

class skfb.core.exceptions.SKFBException[source]

Base exception for scikit-fallback estimators.

Attributes:
args

Methods

add_note

Exception.add_note(note) -- add a note to the exception

with_traceback

Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.