def test_lmnn(self):
    lmnn = LMNN(n_neighbors=5, learn_rate=1e-6, verbose=False)
    lmnn.fit(self.X, self.y)
    res_1 = lmnn.transform(self.X)

    lmnn = LMNN(n_neighbors=5, learn_rate=1e-6, verbose=False)
    res_2 = lmnn.fit_transform(self.X, self.y)

    assert_array_almost_equal(res_1, res_2)
Exemplo n.º 2
0
  def test_lmnn(self):
    lmnn = LMNN(k=5, learn_rate=1e-6, verbose=False)
    lmnn.fit(self.X, self.y)
    res_1 = lmnn.transform(self.X)

    lmnn = LMNN(k=5, learn_rate=1e-6, verbose=False)
    res_2 = lmnn.fit_transform(self.X, self.y)

    assert_array_almost_equal(res_1, res_2)
Exemplo n.º 3
0
def lmnn_apply(x_input, y_input, k_input):
    y_classified = classify_y(y_input)
    lmnn = LMNN(k=k_input, learn_rate=1e-6)
    x_output = lmnn.fit_transform(x_input, y_classified)
    return x_output
Exemplo n.º 4
0
    def exeLMNN(self, knum=5):
        lmnn = LMNN(k=knum)
        X_new = lmnn.fit_transform(self.X, self.y)

        return X_new
Exemplo n.º 5
0
                                                total_train_labels):
        train_features = total_train_features[train_index]
        train_labels = total_train_labels[train_index]
        valid_features = total_train_features[valid_index]
        valid_labels = total_train_labels[valid_index]

        fold_cnt += 1
        print("k:", knn_k)
        print("fold:", fold_cnt)
        print("train features shape:", train_features.shape)
        print("train labels shape:", train_labels.shape)
        print("valid features shape:", valid_features.shape)
        print("valid labels shape:", valid_labels.shape)

        lmnn = LMNN(k=5)
        transformed_features = lmnn.fit_transform(train_features, train_labels)
        neigh = KNeighborsClassifier(n_neighbors=knn_k)
        neigh.fit(transformed_features, train_labels)
        neigh_orig = KNeighborsClassifier(n_neighbors=knn_k)
        neigh_orig.fit(train_features, train_labels)
        predict = neigh.predict(lmnn.transform(valid_features))
        predict_orig = neigh_orig.predict(valid_features)
        accuracy = metrics.accuracy_score(valid_labels, predict)
        accuracy_orig = metrics.accuracy_score(valid_labels, predict_orig)
        print("accuracy after metric learning:{}".format(accuracy))
        print("accuracy before metric learning:{}".format(accuracy_orig))
        ac_list.append(accuracy)
        ac_list_orig.append(accuracy_orig)

    final_train_accuracy = np.mean(ac_list)
    print(final_train_accuracy)