Source code for driftai.parameters.parameters

from abc import ABC, abstractmethod, abstractproperty

import numpy as np


class AbstractParameter(ABC):
    
    def __init__(self, name):
        self.name = name

    @abstractmethod
    def generate_vector(self):
        """
        Generate all possible values of the parameter

        Returns
        -------
        list
            All possible values
        """
        pass

[docs]class IntParameter(AbstractParameter): """ Represents an Integer parameter """ def __init__(self, name, initial, limit, step): """ Parameters ---------- name: str Parameter name initial: int Start of interval. The interval includes this value limit: int End of interval. The interval does not include this value, except in some cases where step is not an integer and floating point round-off affects the length of out. setp: int Spacing between values. """ super().__init__(name) self.init_value = initial self.limit = limit self.step = step
[docs] def generate_vector(self): """ Return evenly spaced values within a given interval """ return np.arange(self.init_value, self.limit, self.step) \ .astype(int).tolist()
[docs]class FloatParameter(AbstractParameter): """ Represents an Floating parameter """ def __init__(self, name, initial, limit, partitions): """ Parameters ---------- name: str Parameter name initial: float The starting value of the sequence. limit: float The end value of the sequence partitions: int Number of samples to generate """ super().__init__(name) self.init_value = initial self.limit = limit self.partitions = partitions
[docs] def generate_vector(self): """ Return evenly spaced numbers over a specified interval """ return np.linspace(self.init_value, self.limit, self.partitions) \ .astype(float).tolist()
[docs]class CategoricalParameter(AbstractParameter): """ Represents a categorical parameter """ def __init__(self, name, values): """ Parameters ----------- name: str Parameter name values: list Possible values """ super().__init__(name) self.values = values
[docs] def generate_vector(self): return self.values
[docs]class BoolParameter(AbstractParameter): """ Represents a boolean parameter """
[docs] def generate_vector(self): """ Return the 2 only possible values for bool """ return [True, False]