Find closest vector
up vote
-1
down vote
favorite
We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.
It is required to find from the list of vectors the closest to the input vector
(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.
Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?
algorithm search
add a comment |
up vote
-1
down vote
favorite
We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.
It is required to find from the list of vectors the closest to the input vector
(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.
Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?
algorithm search
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.
It is required to find from the list of vectors the closest to the input vector
(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.
Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?
algorithm search
We have a list of vectors with dimensions greater than two(dimension can be 10, 32, 64 or 15) and an arbitrary vector as the input.
It is required to find from the list of vectors the closest to the input vector
(for example: 10000 and 10001 are close vectors, but 10111 and 10000 are not close vectors), but without complete passage through the list. I know several Nearest neighbor search algorithms that allow us to find the closest similar element: kd-trees, Voronoi diagram , but they are aimed at finding elements in a plane or in 3-dimensional space.
Are there any algorithms, which allow to find the nearest vector, which dimension greater then 2?
algorithm search
algorithm search
edited Nov 12 at 12:30
Joris Schellekens
5,95611141
5,95611141
asked Nov 10 at 9:51
cvxbcvbsd fsddfgdfg
82
82
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
Almost all index structures for nearest-neighbour search support multi-dimensional data.
For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).
Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either
- try to optimize this scan (e.g., early stopping during distance calculation or VA-File)
- use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53237791%2ffind-closest-vector%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
Almost all index structures for nearest-neighbour search support multi-dimensional data.
For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).
Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either
- try to optimize this scan (e.g., early stopping during distance calculation or VA-File)
- use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)
add a comment |
up vote
0
down vote
accepted
Almost all index structures for nearest-neighbour search support multi-dimensional data.
For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).
Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either
- try to optimize this scan (e.g., early stopping during distance calculation or VA-File)
- use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
Almost all index structures for nearest-neighbour search support multi-dimensional data.
For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).
Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either
- try to optimize this scan (e.g., early stopping during distance calculation or VA-File)
- use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)
Almost all index structures for nearest-neighbour search support multi-dimensional data.
For example KD-Trees and R-Trees are well suited for low dimensional data ( d < 5-10). When the number of dimensions increases you run into the curse of dimensionality and most index structures degenerate (they become less selective).
Beyond something like 20 dimensions (this is just a rule of thumb and highly data distribution dependent) these traditional index structures offer no benefit over a full scan over the data. Then you can either
- try to optimize this scan (e.g., early stopping during distance calculation or VA-File)
- use approximate nearest neighbour approaches (e.g., locality sensitive hashing) that are fast but do not guarantee to return the nearest neighbour (but usually a close one)
edited Nov 14 at 7:24
answered Nov 12 at 12:57
SaiBot
1,761414
1,761414
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53237791%2ffind-closest-vector%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Comments are not for extended discussion; this conversation has been moved to chat.
– Samuel Liew♦
Nov 10 at 20:37