Сергей: Нейронная сеть - из пушки по воробьям. И долго. Нужно быстро работающий алгоритм на больших входных данных (1ТБ минимум).
Я мало чего понял из вашего объяснения про полином, но из того, что я сумел понять, это будет очень долго, такой полином считать. И то, это только для сведения вектора к одному числу, которое, кстати, весьма сомнительное и не факт, что у похожих векторов будут похожие числа. Быстрее будет напрямую расстояние Хэмминга считать даже. Я не понял, на самом деле, откуда у вас взялись магические константы эти, как, собственно, и все остальное. Может это я дурачок и ничего не понимаю, конечно, но если бы вы поясняли понятнее, было бы намного лучше
Сергей: хеш далеко не всегда число. Очень часто это строка из шестнадцатиричного кода. Что делить на m нужно? У меня нету чисел, чтобы делить их на m. У меня есть бинарное представление данных и все.
Есть вектора длинной N.
Пусть N = 10:
Вектор А: 0010111010
Вектор Б: 0010011011
Вектор А похож на вектор Б на 80% т.к. 8 (совпавших битов, то есть пересечение) делим на 10 (объединение деленное на 2, прошу прощения. Это коэффициент Серенсина). Элементами считать биты. Но считать напрямую расстоянием Хэмминга или подобным - не вариант. Я уже писал выше. Нужно через хеш вычислять похожесть. Я там обновил пост, посмотрите
Степень похожести интуитивная. Лучше всего, чтобы она определялась по коэффициенту Жаккара (пересечение двух множеств поделено на их объединение).
В том то и дело, что есть алгоритмы, которые могут связать вектор с хешем так, чтобы можно было определить похожесть по хешу.
Ваш вариант совсем не понял. У меня есть много последовательностей из 65536 единиц и нулей каждая, причем тут 2^n битное число и остаток от деления - не понятно. Может это я чего-то не знаю просто, если можно объясните поподробнее.
Дело в том, что у меня есть буквально 3-4 дня на это дело, и хотелось бы более быстрого вхождения, чем чтение книжки в 600+ страниц для углубленного изучения. Если, конечно, это вообще возможно.