def estimate_beta()

in svinfer/linear_model/linear_regression.py [0:0]


    def estimate_beta(self):
        self.omega = self.xtx.copy()
        self.omega[np.diag_indices(self.k)] = np.diag(self.omega) - self.x_s2

        # check whether omega is positive-definite or not
        # reference on threshold https://fburl.com/7y4wyaev
        eigenvalues = np.linalg.eigvals(self.omega)
        if eigenvalues.max() < 0 or (
            eigenvalues.min() < eigenvalues.max() * self.k * np.finfo(np.float_).eps
        ):
            logging.warning("omega is not positive definite")
            self.beta = np.linalg.lstsq(self.omega, self.xty, rcond=None)[0]
        else:
            self.beta = np.linalg.solve(self.omega, self.xty)