Esempio n. 1
0
    def transform(self, X):
        """ If X and self are of different shapes, align self to X, else
        return self.

        Parameters
        ----------
        X : Triangle
            The triangle to be transformed

        Returns
        -------
            X_new : New triangle with transformed attributes.
        """
        X_new = copy.copy(X)
        if 'ldf_' not in X_new:
            X_new = Development().fit_transform(X_new)
        X_new.p_to_i_X_ = self._get_p_to_i_object(X_new)
        X_new.p_to_i_ldf_ = self._get_p_to_i_object(X_new.ldf_)
        X_new.p_to_i_sigma_ = self._get_p_to_i_object(X_new.sigma_)
        X_new.q_f_, X_new.rho_sigma_ = self._get_MCL_model(X_new)
        X_new.munich_full_triangle_ = self._get_munich_full_triangle_(
            X_new.p_to_i_X_, X_new.p_to_i_ldf_, X_new.p_to_i_sigma_,
            self.lambda_coef_, X_new.rho_sigma_, X_new.q_f_)
        X_new.ldf_ = self._set_ldf(X_new, self._get_mcl_cdf(X_new, X_new.munich_full_triangle_))
        triangles = ['rho_', 'lambda_', 'lambda_coef_']
        for item in triangles:
            setattr(X_new, item, getattr(self, item))
        X_new._set_slicers()
        return X_new
Esempio n. 2
0
    def transform(self, X):
        """ If X and self are of different shapes, align self to X, else
        return self.

        Parameters
        ----------
        X : Triangle
            The triangle to be transformed

        Returns
        -------
            X_new : New triangle with transformed attributes.
        """
        backend = X.array_backend
        if backend == "sparse":
            X_new = X.set_backend("numpy")
        else:
            X_new = X.copy()
        xp = X_new.get_array_module()
        self.xp = xp
        if "ldf_" not in X_new:
            X_new = Development().fit_transform(X_new)
        self.xp = X_new.get_array_module()
        X_new.p_to_i_X_ = self._get_p_to_i_object(X_new)
        X_new.p_to_i_ldf_ = self._get_p_to_i_object(X_new.ldf_)
        X_new.p_to_i_sigma_ = self._get_p_to_i_object(X_new.sigma_)
        X_new.q_f_, X_new.rho_sigma_ = self._get_MCL_model(X_new)
        X_new.munich_full_triangle_ = self._get_munich_full_triangle_(
            X_new.p_to_i_X_,
            X_new.p_to_i_ldf_,
            X_new.p_to_i_sigma_,
            self.lambda_coef_,
            X_new.rho_sigma_,
            X_new.q_f_,
        )
        X_new.ldf_ = self._set_ldf(
            X_new, self._get_mcl_cdf(X_new, X_new.munich_full_triangle_)
        )
        del self.xp
        triangles = ["rho_", "lambda_", "lambda_coef_"]
        for item in triangles:
            setattr(X_new, item, getattr(self, item))
        X_new._set_slicers()
        X_new.sigma_ = X_new.std_err_ = X_new.ldf_ * 0 + 1
        return X_new