Тут вопрос не в том, какой алгоритм использовать, а как представить данные, чтобы можно было натравить любимую логистическую регрессию или градиентный бустинг.
Если объектов не очень много, то можно нагенерировать все пары (а,б), где а из первого множества, а б из второго, придумать признаки для этих пар и обучать алгоритм на "есть связь / нет связи"