Ejemplo n.º 1
0
    def fit(self, feats, labels):
        self.X_tr = feats
        self.y_train = labels

        feats = feats.astype(np.float64)
        feat = RealFeatures(feats.T)
        self.metric_model = shogun_LMNN(
            feat, MulticlassLabels(labels.astype(np.float64)), self.k)
        self.metric_model.set_maxiter(self.max_iter)
        self.metric_model.set_regularization(self.regularization)
        self.metric_model.set_obj_threshold(self.convergence_tol)
        self.metric_model.set_stepsize(self.learn_rate)

        self.metric_model.train()

        stats = self.metric_model.get_statistics()
        #pdb.set_trace()
        #plt.plot(stats.obj.get())
        #plt.grid(True)
        #plt.show()
        self.linear_transform = self.metric_model.get_linear_transform()

        #self.projected_data = np.dot(self.linear_transform, feats.T)
        #norms = np.linalg.norm(self.projected_data, axis=0)
        #self.projected_data /= norms
        # Fit the data with PCA first.
        # pdb.set_trace()
        return self
Ejemplo n.º 2
0
    def fit(self, feats, labels):
        self.eigenvecs, self.space = self.space_model.fit(feats, labels)
        feat = RealFeatures(self.space)
        self.metric_model = shogun_LMNN(
            feat, MulticlassLabels(labels.astype(np.float64)), self.k)
        self.metric_model.set_maxiter(1000)
        self.metric_model.set_regularization(0.50)
        self.metric_model.set_obj_threshold(0.001)
        self.metric_model.set_stepsize(1e-7)

        #pdb.set_trace()
        L = np.eye(self.space.shape[1])
        self.metric_model.train(L)

        stats = self.metric_model.get_statistics()
        #plt.plot(stats.obj.get())
        #plt.grid(True)
        #plt.show()
        self.linear_transform = self.metric_model.get_linear_transform()

        self.projected_data = np.dot(self.linear_transform, self.space)
        norms = np.linalg.norm(self.projected_data, axis=0)
        self.projected_data /= norms
        # Fit the data with PCA first.
        # pdb.set_trace()
        return self.eigenvecs, self.projected_data
Ejemplo n.º 3
0
 def fit(self, X, y):
   self.X_, y = check_X_y(X, y, dtype=float)
   labels = MulticlassLabels(y)
   self._lmnn = shogun_LMNN(RealFeatures(self.X_.T), labels, self.k)
   self._lmnn.set_maxiter(self.max_iter)
   self._lmnn.set_obj_threshold(self.convergence_tol)
   self._lmnn.set_regularization(self.regularization)
   self._lmnn.set_stepsize(self.learn_rate)
   if self.use_pca:
     self._lmnn.train()
   else:
     self._lmnn.train(np.eye(X.shape[1]))
   self.L_ = self._lmnn.get_linear_transform()
   return self
Ejemplo n.º 4
0
 def fit(self, X, y):
   self.X_, y = check_X_y(X, y, dtype=float)
   labels = MulticlassLabels(y)
   self._lmnn = shogun_LMNN(RealFeatures(self.X_.T), labels, self.k)
   self._lmnn.set_maxiter(self.max_iter)
   self._lmnn.set_obj_threshold(self.convergence_tol)
   self._lmnn.set_regularization(self.regularization)
   self._lmnn.set_stepsize(self.learn_rate)
   if self.use_pca:
     self._lmnn.train()
   else:
     self._lmnn.train(np.eye(X.shape[1]))
   self.L_ = self._lmnn.get_linear_transform()
   return self
Ejemplo n.º 5
0
 def fit(self, X, labels, verbose=False):
   self.X = X
   self.L = np.eye(X.shape[1])
   labels = MulticlassLabels(labels.astype(np.float64))
   self._lmnn = shogun_LMNN(RealFeatures(X.T), labels, self.params['k'])
   self._lmnn.set_maxiter(self.params['max_iter'])
   self._lmnn.set_obj_threshold(self.params['convergence_tol'])
   self._lmnn.set_regularization(self.params['regularization'])
   self._lmnn.set_stepsize(self.params['learn_rate'])
   if self.params['use_pca']:
     self._lmnn.train()
   else:
     self._lmnn.train(self.L)
   self.L = self._lmnn.get_linear_transform()
   return self
Ejemplo n.º 6
0
 def fit(self, X, y):
   X, y = self._prepare_inputs(X, y, dtype=float,
                               ensure_min_samples=2)
   labels = MulticlassLabels(y)
   self._lmnn = shogun_LMNN(RealFeatures(X.T), labels, self.k)
   self._lmnn.set_maxiter(self.max_iter)
   self._lmnn.set_obj_threshold(self.convergence_tol)
   self._lmnn.set_regularization(self.regularization)
   self._lmnn.set_stepsize(self.learn_rate)
   if self.use_pca:
     self._lmnn.train()
   else:
     self._lmnn.train(np.eye(X.shape[1]))
   self.transformer_ = self._lmnn.get_linear_transform(X)
   return self
Ejemplo n.º 7
0
 def fit(self, X, labels):
   self.X = X
   self.L = np.eye(X.shape[1])
   labels = MulticlassLabels(labels.astype(np.float64))
   self._lmnn = shogun_LMNN(RealFeatures(X.T), labels, self.params['k'])
   self._lmnn.set_maxiter(self.params['max_iter'])
   self._lmnn.set_obj_threshold(self.params['convergence_tol'])
   self._lmnn.set_regularization(self.params['regularization'])
   self._lmnn.set_stepsize(self.params['learn_rate'])
   if self.params['use_pca']:
     self._lmnn.train()
   else:
     self._lmnn.train(self.L)
   self.L = self._lmnn.get_linear_transform()
   return self
Ejemplo n.º 8
0
 def fit(self, X, y):
   X, y = self._prepare_inputs(X, y, dtype=float,
                               ensure_min_samples=2)
   labels = MulticlassLabels(y)
   self._lmnn = shogun_LMNN(RealFeatures(X.T), labels, self.k)
   self._lmnn.set_maxiter(self.max_iter)
   self._lmnn.set_obj_threshold(self.convergence_tol)
   self._lmnn.set_regularization(self.regularization)
   self._lmnn.set_stepsize(self.learn_rate)
   if self.use_pca:
     self._lmnn.train()
   else:
     self._lmnn.train(np.eye(X.shape[1]))
   self.transformer_ = self._lmnn.get_linear_transform(X)
   return self
Ejemplo n.º 9
0
 def __init__(self, X, labels, k=3):
   self.X = X
   self.L = np.eye(X.shape[1])
   labels = MulticlassLabels(labels.astype(np.float64))
   self._lmnn = shogun_LMNN(RealFeatures(X.T), labels, k)