Source code for leaspy.algo.personalize.base
"""This module defines the `AbstractPersonalizeAlgo` class used for all personalize algorithms."""
from abc import abstractmethod
from leaspy.io.data import Dataset
from leaspy.io.outputs import IndividualParameters
from ..base import AlgorithmType, IterativeAlgorithm, ModelType, ReturnType
from ..settings import OutputsSettings
__all__ = ["PersonalizeAlgorithm"]
[docs]
class PersonalizeAlgorithm(IterativeAlgorithm[ModelType, ReturnType]):
"""Abstract class for `personalize` algorithm.
Estimation of individual parameters of a given `Data` file with
a frozen model (already estimated, or loaded from known parameters).
Parameters
----------
settings : :class:`.AlgorithmSettings`
Settings of the algorithm.
Attributes
----------
name : :obj:`str`
Algorithm's name.
seed : :obj:`int`, optional
Algorithm's seed (default None).
algo_parameters : :obj:`dict`
Algorithm's parameters.
See Also
--------
:meth:`.Leaspy.personalize`
"""
family: AlgorithmType = AlgorithmType.PERSONALIZE
[docs]
def set_output_manager(self, output_settings: OutputsSettings) -> None:
"""Set the output manager.
This is currently not implemented for personalize.
"""
pass
def _run(self, model: ModelType, dataset: Dataset, **kwargs) -> ReturnType:
r"""Main personalize function, wraps the abstract :meth:`._get_individual_parameters` method.
Parameters
----------
model : :class:`~leaspy.models.McmcSaemCompatibleModel`
A subclass object of leaspy `McmcSaemCompatibleModel`.
dataset : :class:`.Dataset`
Dataset object build with leaspy class objects Data, algo & model
Returns
-------
individual_parameters : :class:`.IndividualParameters`
Contains individual parameters.
"""
return self._compute_individual_parameters(model, dataset, **kwargs)
@abstractmethod
def _compute_individual_parameters(
self, model: ModelType, dataset: Dataset, **kwargs
) -> IndividualParameters:
raise NotImplementedError()