распознавание образов python в данных

#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 футах от которого есть еще одно дерево. Вот где сокровище. Итак, вы начинаете проверять все деревья одно за другим в соответствии с этим шаблоном и смотрите, выполняется ли указанное выше условие расстояния до других деревьев. Если нет, вы проверяете другое дерево и так далее. Обратите внимание, что не имеет значения, сколько деревьев вы найдете между ними, важно то, что на этих заданных расстояниях существует одно дерево.