Example #1
0
def preview_nearest(ref_idx, codes, filenames, n=5):
    if not isinstance(codes, list):
        codes = [codes]
    neighbors = Neighbors(k=n).fit(codes)
    for i, code_set in enumerate(codes):
        distances, nearest = neighbors.kneighbors(code_set[ref_idx])
        for j, f in enumerate([filenames[k] for k, _ in nearest]):
            columns = len(nearest) + 1
            rows = len(codes)
            sp = plt.subplot(rows, columns, (i * columns) + j + 1)
            sp.imshow(np.flipud(mpimg.imread(f)))
Example #2
0
def local_match(data, code, query_size=10, ratio=1.0, seed=0):
    """Estimate the average accuracy of knn queries."""
    n_samples = data.shape[0]
    n_subset = int(ratio * n_samples)
    accuracies = np.zeros(n_subset)
    data_neighbors = Neighbors(k=query_size + 1).fit(data)
    code_neighbors = Neighbors(k=query_size + 1).fit(code)
    rng = Random(seed)

    for i, j in enumerate(rng.sample(xrange(n_samples), n_subset)):
        _, knn_data = data_neighbors.kneighbors(data[j])
        knn_data = knn_data[1:]
        _, knn_code = code_neighbors.kneighbors(code[j])
        knn_code = knn_code[1:]
        accuracies[i] = float(len(set(knn_data) & set(knn_code))) / query_size

    return accuracies.mean()