Ejemplo n.º 1
0
 def oneStep3(self, X, Y):
     n, d = X.shape[0], X.shape[1]
     Y = Y.reshape(-1, 1) 
     v = X.dot(self._beta)
     GEVFunc.clip(self.xi, v)
     W = np.diag(GEVFunc.derivInverseLink(self.xi, v).flatten())
     secOrd = np.linalg.pinv(X.T.dot(W).dot(X) / n + self.reg * np.eye(d))
     Y_hat = GEVFunc.inverseLink(self.xi, v)
     firOrd = X.T.dot(Y_hat - Y) / n + self.reg * self._beta
     self._beta -= self.step * secOrd.dot(firOrd)    
Ejemplo n.º 2
0
    def fit3(self, X, Y):
        n, d = X.shape[0], X.shape[1]
        Y = Y.reshape(-1, 1) 
        if not self.manualInitial:
            self.initialize(X, Y)
        t = 0.
        while t < self.iterations:
            v = X.dot(self._beta)
            GEVFunc.clip(self.xi, v)
            W = np.diag(GEVFunc.derivInverseLink(self.xi, v).flatten())
#            secOrd = np.linalg.pinv(X.T.dot(W).dot(X) / n + self.reg * np.eye(d))
            A = X.T.dot(W).dot(X) / n + self.reg * np.eye(d)
            Y_hat = GEVFunc.inverseLink(self.xi, v)
            b = X.T.dot(Y_hat - Y) / n + self.reg * self._beta
            self._beta += np.linalg.lstsq(A, -b)[0]
#            self._beta -= self.step * secOrd.dot(firOrd)    
            t += 1
        self._beta = np.array(self._beta).flatten()