Предсказание неслучайного числа из ряда случайных чисел

Я получил следующее интересное задание:

Приведен список из 1 миллиона номеров с 16 цифрами (скажем, номеров кредитных карт), который включает 990 000 чисто случайных чисел, сгенерированных компьютерной системой, и 10 000, созданных мошенниками вручную. Эти цифры помечены как подлинные или мошеннические. Построить алгоритм для прогнозирования неслучайных чисел.

Пока что мой подход немного грубоват: смотреть на неслучайные числа, чтобы найти шаблоны (например, повторяющиеся числа: 22222 или 01234).

Интересно, есть ли готовый алгоритм или инструмент для такого рода задач? Я полагаю, что эта задача должна быть довольно распространенной среди аналитического сообщества по мошенничеству.

Благодарю.

1 ответ

Решение

Прежде всего, если вы знаете, что это номера кредитных карт, используйте алгоритм Луна, который представляет собой алгоритм быстрой контрольной суммы для действительных номеров кредитных карт.

Однако, если они представляют собой просто 16-значные целые числа, есть несколько подходов, которые вы можете использовать. Трудно сказать, пришло ли отдельное число из случайного источника (так как число 1111111111111111 столь же вероятно, как и любое другое число из генератора случайных чисел). Что касается ваших повторных чисел и шаблонов, это очень напоминает концепцию сложности Колмогорова (см. Ссылки ниже). Вы можете попробовать поискать паттерны в этом методе грубой силы, но я чувствую, что это будет довольно неточно, поскольку люди могут избегать ввода цифр и последовательностей в эти числа!

Вместо этого я предлагаю сосредоточиться на том, как люди генерируют числа. Вы можете рассматривать вводимые человеком данные как очень плохой генератор случайных чисел. Поэтому я рекомендую просто составить список случайных чисел, введенных человеком, если у вас нет другого набора данных. Затем вы можете использовать машинное обучение для генерации алгоритма классификатора, чтобы различать чисто случайные числа (те, которые не имеют "человеческих" атрибутов, которые распознал ваш алгоритм машинного обучения). С точки зрения метрик для статистического классификатора, сложность Колмогорова может быть равна одной, возможно, частоте цифр для другой метрики (см. Закон Бенфорда о Википедии) и числу повторяющихся цифр для другой (люди могут попытаться избежать повторения цифр, чтобы выглядеть не случайным образом, так что пусть ваш классификатор сделает всю работу!)

Исходя из моего личного опыта, такие сложные проблемы, как эта, являются учебным пособием для алгоритмов машинного обучения и статистических классификаторов.

Надеюсь это поможет!

Ссылки:

Колмогоров Сложность
Калькулятор сложности

Другие вопросы по тегам