Exemple #1
0
 def __init__(self,
              X,
              Y,
              regparam=1.0,
              kernel='LinearKernel',
              basis_vectors=None,
              **kwargs):
     Y = array_tools.as_2d_array(Y)
     self.Y = np.mat(Y)
     if X.shape[0] != Y.shape[0]:
         raise Exception("First dimension of X and Y must be the same")
     if basis_vectors != None:
         if X.shape[1] != basis_vectors.shape[1]:
             raise Exception(
                 "Number of columns for X and basis_vectors must be the same"
             )
     kwargs["bias"] = 0.
     kwargs['kernel'] = kernel
     kwargs['X'] = X
     if basis_vectors != None:
         kwargs['basis_vectors'] = basis_vectors
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.regparam = regparam
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.size = self.Y.shape[0]
     self.solve(self.regparam)
Exemple #2
0
 def createLearner(cls, **kwargs):
     new_kwargs = {}
     new_kwargs["svdad"] = creators.createSVDAdapter(**kwargs)
     new_kwargs["train_labels"] = kwargs["train_labels"]
     if kwargs.has_key("regparam"):
         new_kwargs['regparam'] = kwargs["regparam"]
     learner = cls(**new_kwargs)
     return learner
Exemple #3
0
 def createLearner(cls, **kwargs):
     new_kwargs = {}
     new_kwargs["svdad"] = creators.createSVDAdapter(**kwargs)
     new_kwargs["train_labels"] = kwargs["train_labels"]
     if kwargs.has_key("regparam"):
         new_kwargs['regparam'] = kwargs["regparam"]
     learner = cls(**new_kwargs)
     return learner
Exemple #4
0
 def __init__(self, **kwargs):
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.Y = array_tools.as_labelmatrix(kwargs["train_labels"])
     if kwargs.has_key("regparam"):
         self.regparam = float(kwargs["regparam"])
     else:
         self.regparam = 1.
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.results = {}
Exemple #5
0
 def __init__(self, **kwargs):
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.Y = array_tools.as_labelmatrix(kwargs["train_labels"])
     if kwargs.has_key("regparam"):
         self.regparam = float(kwargs["regparam"])
     else:
         self.regparam = 1.
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.results = {}
Exemple #6
0
 def createLearner(cls, **kwargs):
     new_kwargs = {}
     new_kwargs["svdad"] = creators.createSVDAdapter(**kwargs)
     if kwargs.has_key("regparam"):
         new_kwargs['regparam'] = float(kwargs["regparam"])
     if kwargs.has_key("train_labels"):
         new_kwargs["train_labels"] = kwargs["train_labels"]
     if kwargs.has_key("number_of_clusters"):
         new_kwargs['number_of_clusters'] = int(kwargs["number_of_clusters"])
     if kwargs.has_key("fixed_indices"):
         new_kwargs["fixed_indices"] = kwargs["fixed_indices"]
     if kwargs.has_key("callback_obj"):
         new_kwargs["callback_obj"] = kwargs["callback_obj"]
     learner = cls(**new_kwargs)
     return learner
Exemple #7
0
 def createLearner(cls, **kwargs):
     new_kwargs = {}
     new_kwargs["svdad"] = creators.createSVDAdapter(**kwargs)
     if kwargs.has_key("regparam"):
         new_kwargs['regparam'] = float(kwargs["regparam"])
     if kwargs.has_key("train_labels"):
         new_kwargs["train_labels"] = kwargs["train_labels"]
     if kwargs.has_key("number_of_clusters"):
         new_kwargs['number_of_clusters'] = int(
             kwargs["number_of_clusters"])
     if kwargs.has_key("fixed_indices"):
         new_kwargs["fixed_indices"] = kwargs["fixed_indices"]
     if kwargs.has_key("callback_obj"):
         new_kwargs["callback_obj"] = kwargs["callback_obj"]
     learner = cls(**new_kwargs)
     return learner
Exemple #8
0
 def __init__(self, X, pairs_start_inds, pairs_end_inds, regparam = 1.0, kernel='LinearKernel', basis_vectors = None, **kwargs):
     
     kwargs['kernel'] =  kernel
     kwargs['X'] = X
     if basis_vectors != None:
         kwargs["basis_vectors"] = basis_vectors
     self.regparam = regparam
     self.pairs = np.vstack([pairs_start_inds, pairs_end_inds]).T
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.results = {}
     self.X = csc_matrix(X)
     self.bias = 0.
     self.results = {}
     self.solve(regparam)
    def __init__(self,
                 X,
                 regparam=1.0,
                 number_of_clusters=2,
                 kernel='LinearKernel',
                 basis_vectors=None,
                 Y=None,
                 fixed_indices=None,
                 callback=None,
                 **kwargs):
        kwargs['X'] = X
        kwargs['kernel'] = kernel
        if basis_vectors != None:
            kwargs['basis_vectors'] = basis_vectors
        self.svdad = creators.createSVDAdapter(**kwargs)
        self.svals = self.svdad.svals
        self.svecs = self.svdad.rsvecs
        self.callbackfun = callback
        self.regparam = regparam
        self.constraint = 0
        self.labelcount = number_of_clusters
        self.size = X.shape[0]
        #if self.labelcount == 2:
        #    self.oneclass = True
        #else:
        #    self.oneclass = False

        if Y == None:
            self.classvec = np.zeros(self.size)
        else:
            self.classvec = Y
        #self.size = self.classvec.shape[0]
        self.Y = -np.ones((self.size, self.labelcount))
        self.classcounts = np.zeros((self.labelcount), dtype=np.int32)
        for i in range(self.size):
            clazzind = self.classvec[i]
            self.Y[i, clazzind] = 1
            self.classcounts[clazzind] = self.classcounts[clazzind] + 1

        self.fixedindices = []
        if fixed_indices != None:
            self.fixedindices = fixed_indices
        self.train()
 def __init__(self, **kwargs):
     super(PPRankRLS, self).__init__(**kwargs)
     if kwargs.has_key("regparam"):
         self.regparam = float(kwargs["regparam"])
     else:
         self.regparam = 0.
     self.pairs = kwargs['train_preferences']
     self.learn_from_labels = False
     self.svdad = creators.createSVDAdapter(**kwargs)
     #self.Y = array_tools.as_labelmatrix(kwargs["train_labels"])
     #if kwargs.has_key("regparam"):
     #    self.regparam = float(kwargs["regparam"])
     #else:
     #    self.regparam = 1.
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.results = {}
     X = kwargs['train_features']
     self.X = csc_matrix(X)
     self.bias = 0.
     self.results = {}
Exemple #11
0
 def __init__(self,
              X,
              Y,
              qids,
              regparam=1.0,
              kernel='LinearKernel',
              basis_vectors=None,
              **kwargs):
     kwargs["bias"] = 0.
     kwargs['kernel'] = kernel
     kwargs['X'] = X
     if basis_vectors != None:
         kwargs['basis_vectors'] = basis_vectors
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.Y = np.mat(array_tools.as_2d_array(Y))
     self.regparam = regparam
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.size = self.Y.shape[0]
     self.size = self.Y.shape[0]
     self.qids = map_qids(qids)
     self.qidlist = qids_to_splits(self.qids)
     self.solve(self.regparam)
Exemple #12
0
    def __init__(self, **kwargs):
        self.svdad = creators.createSVDAdapter(**kwargs)
        self.svals = self.svdad.svals
        self.svecs = self.svdad.rsvecs
        self.regparam = float(kwargs["regparam"])
        self.constraint = 0
        #if not kwargs.has_key('number_of_clusters'):
        #    raise Exception("Parameter 'number_of_clusters' must be given.")
        if kwargs.has_key("number_of_clusters"):
            self.labelcount = int(kwargs["number_of_clusters"])
        else:
            self.labelcount = 2
        if self.labelcount == 2:
            self.oneclass = True
        else:
            self.oneclass = False
        if kwargs.has_key("callback"):
            self.callbackfun = kwargs["callback"]
        else:
            self.callbackfun = None
        if kwargs.has_key("train_labels"):
            train_labels = kwargs["train_labels"]
        else:
            train_labels = None
        if train_labels != None:
            #Y_orig = array_tools.as_labelmatrix(train_labels)
            Y_orig = array_tools.as_array(train_labels)
            #if Y_orig.shape[1] == 1:
            if len(Y_orig.shape) == 1:
                self.Y = zeros((Y_orig.shape[0], 2))
                self.Y[:, 0] = Y_orig
                self.Y[:, 1] = -Y_orig
                self.oneclass = True
            else:
                self.Y = Y_orig.copy()
                self.oneclass = False
            for i in range(self.Y.shape[0]):
                largestind = 0
                largestval = self.Y[i, 0]
                for j in range(self.Y.shape[1]):
                    if self.Y[i, j] > largestval:
                        largestind = j
                        largestval = self.Y[i, j]
                    self.Y[i, j] = -1.
                self.Y[i, largestind] = 1.
        else:
            size = self.svecs.shape[0]
            ysize = self.labelcount
            if self.labelcount == None: self.labelcount = 2
            self.Y = RandomLabelSource(size, ysize).readLabels()
        self.size = self.Y.shape[0]
        self.labelcount = self.Y.shape[1]
        self.classvec = -ones((self.size), dtype=int32)
        self.classcounts = zeros((self.labelcount), dtype=int32)
        for i in range(self.size):
            clazzind = 0
            largestlabel = self.Y[i, 0]
            for j in range(self.labelcount):
                if self.Y[i, j] > largestlabel:
                    largestlabel = self.Y[i, j]
                    clazzind = j
            self.classvec[i] = clazzind
            self.classcounts[clazzind] = self.classcounts[clazzind] + 1

        self.svecs_list = []
        for i in range(self.size):
            self.svecs_list.append(self.svecs[i].T)
        self.fixedindices = []
        if kwargs.has_key("fixed_indices"):
            self.fixedindices = kwargs["fixed_indices"]
        else:
            self.fixedindices = []
        self.results = {}
Exemple #13
0
 def __init__(self, **kwargs):
     self.svdad = creators.createSVDAdapter(**kwargs)
     self.svals = self.svdad.svals
     self.svecs = self.svdad.rsvecs
     self.regparam = float(kwargs["regparam"])
     self.constraint = 0
     #if not kwargs.has_key('number_of_clusters'):
     #    raise Exception("Parameter 'number_of_clusters' must be given.")
     if kwargs.has_key("number_of_clusters"):
         self.labelcount = int(kwargs["number_of_clusters"])
     else:
         self.labelcount = 2
     if self.labelcount == 2:
         self.oneclass = True
     else:
         self.oneclass = False
     if kwargs.has_key("callback"):
         self.callbackfun = kwargs["callback"]
     else:
         self.callbackfun = None
     if kwargs.has_key("train_labels"):
         train_labels = kwargs["train_labels"]
     else:
         train_labels = None
     if train_labels != None:
         #Y_orig = array_tools.as_labelmatrix(train_labels)
         Y_orig = array_tools.as_array(train_labels)
         #if Y_orig.shape[1] == 1:
         if len(Y_orig.shape) == 1:
             self.Y = zeros((Y_orig.shape[0], 2))
             self.Y[:, 0] = Y_orig
             self.Y[:, 1] = - Y_orig
             self.oneclass = True
         else:
             self.Y = Y_orig.copy()
             self.oneclass = False
         for i in range(self.Y.shape[0]):
             largestind = 0
             largestval = self.Y[i, 0]
             for j in range(self.Y.shape[1]):
                 if self.Y[i, j] > largestval:
                     largestind = j
                     largestval = self.Y[i, j]
                 self.Y[i, j] = -1.
             self.Y[i, largestind] = 1.
     else:
         size = self.svecs.shape[0]
         ysize = self.labelcount
         if self.labelcount == None: self.labelcount = 2
         self.Y = RandomLabelSource(size, ysize).readLabels()
     self.size = self.Y.shape[0]
     self.labelcount = self.Y.shape[1]
     self.classvec = - ones((self.size), dtype = int32)
     self.classcounts = zeros((self.labelcount), dtype = int32)
     for i in range(self.size):
         clazzind = 0
         largestlabel = self.Y[i, 0]
         for j in range(self.labelcount):
             if self.Y[i, j] > largestlabel:
                 largestlabel = self.Y[i, j]
                 clazzind = j
         self.classvec[i] = clazzind
         self.classcounts[clazzind] = self.classcounts[clazzind] + 1
     
     self.svecs_list = []
     for i in range(self.size):
         self.svecs_list.append(self.svecs[i].T)
     self.fixedindices = []
     if kwargs.has_key("fixed_indices"):
         self.fixedindices = kwargs["fixed_indices"]
     else:
         self.fixedindices = []
     self.results = {}
Exemple #14
0
    def __init__(self,
                 X,
                 regparam=1.0,
                 number_of_clusters=2,
                 kernel='LinearKernel',
                 basis_vectors=None,
                 Y=None,
                 fixed_indices=None,
                 callback=None,
                 **kwargs):
        kwargs['X'] = X
        kwargs['kernel'] = kernel
        if basis_vectors != None:
            kwargs['basis_vectors'] = basis_vectors
        self.svdad = creators.createSVDAdapter(**kwargs)
        self.svals = self.svdad.svals
        self.svecs = self.svdad.rsvecs
        self.regparam = regparam
        self.constraint = 0
        #if not kwargs.has_key('number_of_clusters'):
        #    raise Exception("Parameter 'number_of_clusters' must be given.")
        self.labelcount = number_of_clusters
        if self.labelcount == 2:
            self.oneclass = True
        else:
            self.oneclass = False
        self.callbackfun = callback
        if Y != None:
            Y_orig = array_tools.as_array(Y)
            #if Y_orig.shape[1] == 1:
            if len(Y_orig.shape) == 1:
                self.Y = np.zeros((Y_orig.shape[0], 2))
                self.Y[:, 0] = Y_orig
                self.Y[:, 1] = -Y_orig
                self.oneclass = True
            else:
                self.Y = Y_orig.copy()
                self.oneclass = False
            for i in range(self.Y.shape[0]):
                largestind = 0
                largestval = self.Y[i, 0]
                for j in range(self.Y.shape[1]):
                    if self.Y[i, j] > largestval:
                        largestind = j
                        largestval = self.Y[i, j]
                    self.Y[i, j] = -1.
                self.Y[i, largestind] = 1.
        else:
            size = self.svecs.shape[0]
            ysize = self.labelcount
            if self.labelcount == None: self.labelcount = 2
            self.Y = RandomLabelSource(size, ysize).readLabels()
        self.size = self.Y.shape[0]
        self.labelcount = self.Y.shape[1]
        self.classvec = -np.ones((self.size), dtype=np.int32)
        self.classcounts = np.zeros((self.labelcount), dtype=np.int32)
        for i in range(self.size):
            clazzind = 0
            largestlabel = self.Y[i, 0]
            for j in range(self.labelcount):
                if self.Y[i, j] > largestlabel:
                    largestlabel = self.Y[i, j]
                    clazzind = j
            self.classvec[i] = clazzind
            self.classcounts[clazzind] = self.classcounts[clazzind] + 1

        self.svecs_list = []
        for i in range(self.size):
            self.svecs_list.append(self.svecs[i].T)
        self.fixedindices = []
        if fixed_indices != None:
            self.fixedindices = fixed_indices
        else:
            self.fixedindices = []
        self.results = {}
        self.solve(self.regparam)