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
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
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
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
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
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
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)