У меня есть большой набор захваченных данных (возможно, сотни тысяч записей), и мне нужно иметь возможность разбить их, чтобы я мог как классифицировать их, так и сам производить «типичные» данные. Позвольте мне объяснить подробнее ...
Если у меня есть следующие строки данных:
132T339G1P112S
164T897F5A498S
144T989B9B223T
155T928X9Z554T
...
Вы можете начать выводить следующее:
- возможно, все строки имеют длину 14 символов
- 4-й, 8-й, 10-й и 14-й символы всегда могут быть альфами, а остальные - числовыми
- первый символ всегда может быть '1'
- 4-ым символом всегда может быть буква 'T'
- 14-й символ может быть ограничен только 'S' или 'T'
- и так далее ...
По мере того, как вы получаете все больше образцов реальных данных, некоторые из этих «правил» могут исчезнуть; если вы видите строку длиной 15 символов, то у вас есть доказательства того, что первое «правило» неверно. Однако, учитывая достаточно большую выборку строк длиной ровно 14 символов, вы можете начать предполагать, что «все строки имеют длину 14 символов» и назначить числовую цифру для вашей степени достоверности (с соответствующим набором предположений вокруг факта что вы видите случайный набор всех возможных захваченных данных).
Как вы, вероятно, можете сказать, человек может сделать большую часть этой классификации на глаз, но я не знаю библиотек или алгоритмов, которые позволили бы компьютеру делать это.
Учитывая набор захваченных данных (значительно более сложных, чем описанные выше ...), есть ли библиотеки, которые я могу применить в своем коде, чтобы выполнить такую классификацию для меня, которая будет определять «правила» с заданной степенью доверия?
В качестве следующего шага мне нужно уметь использовать эти правила и использовать их для создания моих собственных данных, соответствующих этим правилам. Я предполагаю, что это значительно более простой шаг, чем классификация, но мне никогда не приходилось выполнять такую задачу раньше, поэтому я не уверен, насколько она сложна.
По-видимому, Python или Java (или, возможно, Perl или R), возможно, являются "общими" языками, которые, скорее всего, имеют такие библиотеки, и, возможно, некоторые из биоинформационных библиотек делают подобные вещи. Мне действительно все равно, какой язык я должен использовать; Мне нужно решить эту проблему так, как я могу.
Любой указатель на информацию был бы очень полезен. Как вы, вероятно, можете сказать, я изо всех сил стараюсь описать эту проблему четко, и я могу подключить к Google набор подходящих ключевых слов, которые укажут мне на решение.