Changeset 10490:a1479e654132 in orange


Ignore:
Timestamp:
03/09/12 19:15:25 (2 years ago)
Author:
Lan Zagar <lan.zagar@…>
Branch:
default
rebase_source:
8af0ee6af6a8195dcd8111f3191759577f65a6aa
Message:

Minor improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/projection/linear.py

    r10480 r10490  
    13401340    """ 
    13411341 
    1342     def __new__(cls, dataset = None, **kwds): 
     1342    def __new__(cls, dataset=None, **kwds): 
    13431343        optimizer = object.__new__(cls) 
    13441344        optimizer.__init__(**kwds) 
     
    13491349            return optimizer 
    13501350 
    1351     def __init__(self, standardize = True, 
    1352                  max_components = 0, variance_covered = 1, 
    1353                  use_generalized_eigenvectors = 0): 
     1351    def __init__(self, standardize=True, max_components=0, variance_covered=1, 
     1352                 use_generalized_eigenvectors=0): 
    13541353        self.standardize = standardize 
    13551354        self.max_components = max_components 
    1356         self.variance_covered = variance_covered if variance_covered < 1. else 1 
     1355        self.variance_covered = min(1, variance_covered) 
    13571356        self.use_generalized_eigenvectors = use_generalized_eigenvectors 
    13581357 
     
    13621361            C = numpy.ma.dot(Xg.T, Xd.T) 
    13631362            V, D, T = numpy.linalg.svd(C) 
    1364             U = numpy.ma.dot(V.T, Xd) / numpy.sqrt(D.reshape(-1,1)) 
     1363            U = numpy.ma.dot(V.T, Xd) / numpy.sqrt(D.reshape(-1, 1)) 
    13651364        else: 
    13661365            C = numpy.ma.dot(Xg, Xd) 
     
    13891388        stdev = numpy.std(Xd, axis=0) 
    13901389        relevant_features = stdev != 0 
     1390        Xd = Xd[:, relevant_features] 
    13911391        if self.standardize: 
    1392             stdev[stdev == 0] = 1. 
    1393             Xd /= stdev 
    1394         Xd = Xd[:,relevant_features] 
     1392            Xd /= stdev[relevant_features] 
    13951393 
    13961394        #use generalized eigenvectors 
     
    14021400 
    14031401        #actual pca 
    1404         n,m = Xd.shape 
     1402        n, m = Xd.shape 
    14051403        U, D = self._pca(dataset, Xd, Xg) 
    14061404 
     
    14081406        n, m = U.shape 
    14091407        if m != M: 
    1410             U_ = numpy.zeros((n,M)) 
    1411             U_[:,relevant_features] = U 
     1408            U_ = numpy.zeros((n, M)) 
     1409            U_[:, relevant_features] = U 
    14121410            U = U_ 
    14131411 
     
    14161414        #select eigen vectors 
    14171415        if self.variance_covered != 1: 
    1418             nfeatures = numpy.nonzero(numpy.cumsum(D) / sum(D) >= self.variance_covered)[0][0] + 1 
     1416            nfeatures = numpy.searchsorted(numpy.cumsum(D) / variance_sum, 
     1417                                           self.variance_covered) + 1 
    14191418            U = U[:nfeatures, :] 
    14201419            D = D[:nfeatures] 
     
    14261425        n, m = U.shape 
    14271426        pc_domain = Orange.data.Domain([Orange.feature.Continuous("Comp.%d"% 
    1428                                                                   (i+1)) for i in range(n)], False) 
    1429  
    1430         return PcaProjector(input_domain = dataset.domain, 
     1427            (i + 1)) for i in range(n)], False) 
     1428 
     1429        return PcaProjector(input_domain=dataset.domain, 
    14311430            output_domain = pc_domain, 
    14321431            pc_domain = pc_domain, 
     
    14441443        # define the Laplacian matrix 
    14451444        c = dataset.to_numpy("c")[0] 
    1446         l = -numpy.array(numpy.hstack( [(c != v) for v in c]), dtype='f') 
     1445        l = -numpy.array(numpy.hstack([(c != v) for v in c]), dtype='f') 
    14471446        l -= numpy.diagflat(numpy.sum(l, axis=0)) 
    14481447 
Note: See TracChangeset for help on using the changeset viewer.