#python #pattern-matching #tensorflow
#python #сопоставление с образцом #тензорный поток
Вопрос:
У меня есть большой (порядка 10 КБ) набор данных, скажем, в форме ключ-значение:
A -> 2
B -> 5
C -> 7
D -> 1
E -> 13
F -> 1
G -> 3
. . .
Также меньший набор выборок (порядка 10):
X -> 6
Y -> 8
Z -> 14
. . .
Несмотря на то, что значения смещены, шаблон можно найти в исходных данных. Каков наилучший подход для сопоставления или распознавания образов, чтобы машина распознала соответствующие ключи в исходных данных:
X -> B
Y -> C
Z -> E
. . .
Я читал о TensorFlow и выполнял некоторые упражнения, но, будучи полным новичком, я не совсем уверен, что это правильный инструмент, или, если это так, как именно решить проблему.
Спасибо за любые подсказки.
Комментарии:
1. Я имею в виду смещенный, а не точный, т.Е.
6.1
7.9
и14.001
на самом деле. 🙂2. В этом курсе рассматриваются внутренние шаблоны в базовых данных / ASCII; задания охватывают разбиение Vigenere, одноразовый pad, заполнение oracle, cbc-mac и т. Д. coursera.org/learn/cryptography ; Я не думаю, что это именно то, о чем вы спрашиваете, но концепции могут иметь отношение к делу.
Ответ №1:
Во-первых, вам нужно подумать о функции потерь, т. Е. Почему решение 1 лучше, чем решение 2? Можете ли вы придумать функцию объективной оценки, чтобы более низкие оценки всегда были лучше?
Например, в вашем примере это решение хуже:
X -> C
Y -> C
Z -> E
После того, как вы определили, что вы пытаетесь оптимизировать, мы можем сказать вам, является ли tensorflow правильным инструментом.
Комментарии:
1. хороший момент! Я на самом деле забыл сказать, что соответствие один к одному, т. Е. Ваше предложение будет невозможно. И то, что нужно свести к минимуму, на самом деле является просто арифметическим расстоянием, то есть просто ближайшим числом. Это открывает какие-то подсказки?
2. Ах, так вы просто хотите минимизировать сумму расстояний от ваших 10 точек до 10 уникальных целей в ваших 10 000 точках? Например, у вас есть строка с десятью тысячами бусин на ней, и десять мух приземляются на нее в своих предпочтительных местах на струне, затем каждая из них выбирает лучшую бусину, на которую можно сесть, чтобы максимизировать общее счастье мухи? Вероятно, Tensorflow не подходит для этого: это скорее (забавная) классическая задача поиска и оптимизации.
3. Спасибо. Аналогия на самом деле приятная, но эх… Представьте, что вы охотник за сокровищами в лесу. На вашей карте сокровищ указано, что в лесу есть дерево, в 10 футах от которого есть другое дерево, в 15 футах от которого есть еще одно дерево. Вот где сокровище. Итак, вы начинаете проверять все деревья одно за другим в соответствии с этим шаблоном и смотрите, выполняется ли указанное выше условие расстояния до других деревьев. Если нет, вы проверяете другое дерево и так далее. Обратите внимание, что не имеет значения, сколько деревьев вы найдете между ними, важно то, что на этих заданных расстояниях существует одно дерево.