secure_learning.models.grid_cv module

Module for Cross Validation (CV) following the GridSearchCV paradigm of sklearn.

class secure_learning.models.grid_cv.GridCV(model_type, parameter_collection, X, y, random_state=None, shuffle=False)[source]

Bases: object

Exhaustive search over specified parameter values for a model.

__init__(model_type, parameter_collection, X, y, random_state=None, shuffle=False)[source]

Constructor method.

Parameters:
  • model_type (TypeVar(ModelTypeTV, bound= Type[Model])) – Model type (class)

  • parameter_collection (ParameterCollection) – Parameters to use for cross validation

  • X (List[List[SecureFixedPoint]]) – Secret-shared training data

  • y (List[SecureFixedPoint]) – Secret-shared target vector

Raises:

AttributeError – if the parameters contain an unknown key

best_param_set()[source]

Return parameter set with the best score result.

Return type:

Tuple[float, Parameters]

Returns:

parameter set with the best score result

async cross_validation(folds)[source]

Compute cross validation over all given combinations of parameters and return the score for each set.

Parameters:

folds (Union[int, List[Tuple[List[int], List[int]]]]) – Folding sets. If set to \(k\) (integer) then a KFold (from sklearn.model_selection) is used. If it is not set then KFold is called with \(k=5\). It also possible to pass custom folds as a list of tuples of train and test indexes: e.g. \([([2, 3], [0, 1, 4]), ([0, 1, 3], [2, 4]), ([0, 1, 2], [3, 4])]\) is a three-fold of an array of five elements \(([2, 3], [0, 1, 4])\) -> 1st fold, elements with indexes \([2, 3]\) are used in the train set, while elements with indexes \([0, 1, 4]\) are used in the test set \(([0, 1, 3], [2, 4])\) -> 2nd fold, elements with indexes \([0, 1, 3]\) are used in the train set, while elements with indexes \([2, 4]\) are used in the test set \(([0, 1, 2], [3, 4])\) -> 3rd fold, elements with indexes \([0, 1, 2]\) are used in the train set, while elements with indexes \([3, 4]\) are used in the test set

Return type:

List[List[float]]

Returns:

A list containing one list of score results (over different folds) for each parameters combination

property results: List[List[float]]

The results of grid cross-validation

Returns:

Results of grid cross-validation

Raises:

ValueError – Raised when results are not available

sorted_param_set()[source]

Return a sorted list of the parameter sets with their score results

Return type:

List[Tuple[float, Parameters]]

Returns:

sorted list of the parameter sets with their score results

class secure_learning.models.grid_cv.ParameterCollection(solver_type, penalty, alpha, tolerance, minibatch_size, coef_init, nr_maxiters, class_weights=<factory>, print_progress=<factory>, secure_permutations=<factory>, exponentiation=<factory>, eta0=<factory>)[source]

Bases: object

A collection of parameters, serves as a helper class for generation of a parameter grid.

alpha: List[float]
class_weights: List[ClassWeightsTypes]
coef_init: List[Optional[List[SecureFixedPoint]]]
eta0: List[Optional[float]]
exponentiation: List[ExponentiationTypes]
minibatch_size: List[Optional[int]]
nr_maxiters: List[int]
penalty: List[PenaltyTypes]
print_progress: List[bool]
secure_permutations: List[bool]
solver_type: List[SolverTypes]
tolerance: List[float]
class secure_learning.models.grid_cv.Parameters(solver_type, penalty, alpha, tolerance, minibatch_size, coef_init, nr_maxiters, class_weights, print_progress, secure_permutations, exponentiation, eta0)[source]

Bases: object

Helper class, used internally, to provide a set a parameters.

alpha: float
class_weights: ClassWeightsTypes
coef_init: Optional[List[SecureFixedPoint]]
eta0: Optional[float]
exponentiation: ExponentiationTypes
minibatch_size: Optional[int]
nr_maxiters: int
penalty: PenaltyTypes
print_progress: bool
secure_permutations: bool
solver_type: SolverTypes
tolerance: float