Konstantin
Всем привет! Есть таблица с клиентами и их денежными операциями. Так же есть таблицы с их активностью в двух компаниях, причем один клиент обслуживается только в одной компании. Каким образом можно узнать, какие из клиентов перешли к конкуренту, то есть раньше обслуживались в другой компании?? Попробовал применить кластеризацию, как вообще решаются такие задачи?
Если это платежные операции, то они скорее всего представлены в виде временных рядов. Если принять гипотезу, что схема платежей при переходе к другому клиенту не изменилась, то можно сравнить ряды по расстоянию между ними. Для этого есть разные меры, в том числе и евклидова, вроде, nneighbors посчитать можно. Но я бы для рядов посоветовал Dynamic Time Warping (DTW). И опробовал бы так: для каждого ряда поискал в общей куче ближайшего соседа. Понятно, что каждому ряду всегда найдется пара, но для идентичных мне думается будет какой то минимальный порог плюс минус, вот его его нужно чисто субъективно определить, если нет реального примера перехода в данных и по этому порогу уже судить, есть ли пара для данного ряда в другой организации.
DTW хорошо реализован в библиотеке tslearn -
https://tslearn.readthedocs.io/en/stable/user_guide/dtw.html, помоему, там даже есть специальная приблуда чтобы из кучи рядов самый близкий вытащить.
Ну я бы так попробовал бы сделать.