def METHOD_NAME(self, params, pen_weight=None, **kwds):
    """
    Hessian of model at params
    """
    if pen_weight is None:
        pen_weight = self.pen_weight
    hess = super(PenalizedMixin, self).METHOD_NAME(params, **kwds)
    if pen_weight != 0:
        scale = self._handle_scale(params, **kwds)
        h = self.penal.deriv2(params)
        if h.ndim == 1:
            hess -= 1/scale * np.diag(pen_weight * h)
        else:
            hess -= 1/scale * pen_weight * h
    return hess