Source code for secure_learning.models.secure_ridge
"""
Implementation of Ridge regression model.
"""
from tno.mpc.mpyc.secure_learning.models.secure_linear import Linear
from tno.mpc.mpyc.secure_learning.models.secure_model import PenaltyTypes, SolverTypes
[docs]
class Ridge(Linear):
    r"""
    Solver for Ridge regression. Optimizes a model with objective function
    $$\frac{1}{{2n}_{\textrm{samples}}} \times ||y - Xw||^2_2 +  \frac{\alpha}{2} \times ||w||^2_2$$
    """
    name = "Ridge regression"
[docs]
    def __init__(
        self,
        solver_type: SolverTypes = SolverTypes.GD,
        alpha: float = 1,
    ) -> None:
        """
        Constructor method.
        :param solver_type: Solver type to use (e.g. Gradient Descent aka GD)
        :param alpha: Regularization parameter
        """
        super().__init__(solver_type, penalty=PenaltyTypes.L2, alpha=alpha)