Использование алгоритма EM для связывания записей

9

Мне интересно связать записи между двумя наборами данных по имени, фамилии и году рождения. Можно ли это сделать с помощью алгоритма EM, и если да, то как?

В качестве примера рассмотрим следующую запись в 1-м: Карл Маккарти, 1967. Я буду искать по всем записям во втором наборе данных и назначать расстояние jaro-winkler между первым именем и Карлом и расстояние jaro-winkler между фамилией и Маккарти. Эти расстояния вероятностные, как и расстояние между годами рождения. Мы объединяем эти 3 вероятности (умножим? Среднее?) В 1.

Теперь наступает время принятия решения. Оценим все вероятности от наивысших к наименьшим. Во-первых, мы хотим, чтобы P (первое совпадение совпадало)> = порог. Во-вторых, мы также хотим, чтобы P (первое совпадение совпадало) / P (второе совпадение совпадало)> = порог, если существует P (второе совпадение совпадение). В-третьих, мы хотим, чтобы первый удар во втором наборе данных соответствовал не более чем одному человеку в первом наборе данных с Карлом Маккарти, 1967.

Как можно определить эти пороги?

Я предпочитаю подходы в Stata и / или Perl.

Смотрите, например:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1479910/pdf/amia2003_0259.pdf

(Хотя при этом я до сих пор не полностью следую «почему» и «как», и каковы входы и выходы, а также предположения и насколько они ограничены).

user1690130
источник
Задумывались ли вы об использовании reclink в Stata?
Дмитрий Владимирович Мастеров

Ответы:

4

Абсолютно EM-алгоритм был использован для вероятностного связывания. Есть много статей на эту тему, следующие из Winkler могут быть полезны в отношении теоретических деталей:

http://www.census.gov.edgekey.net/srd/papers/pdf/rr2000-05.pdf

Также здесь доступно программное обеспечение для связи данных, разработанное Кевином Кэмпбеллом:

http://the-link-king.com/

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

RobertF
источник
Спасибо! Я прочитал 2 статьи Винклера, но не до конца их понял. Я собрал EM из этой бумаги. Кроме того, я не знаю, как использовать SAS. Я знаю, что в Perl есть модуль EM, который я бы использовал, но я не уверен, почему EM подходит или как его использовать. Концептуально, как EM отвечает на вышеуказанные вопросы?
user1690130
Насколько я понимаю, алгоритм EM полезен для моделирования вероятности положительного совпадения, потому что он учитывает неизвестные (или «скрытые») вероятности неправильного связывания двух разных записей или неправильного не связывания двух совпадающих записей. Оценки этих вероятностей уточняются на каждом этапе алгоритма для максимизации функции правдоподобия.
RobertF
Какие входные данные я предоставляю? Одномерный проб и метка? И это выплевывает оптимальный матч?
user1690130
0

Существует программное обеспечение RELAIS, которое записывает связь с:

6) Вероятностная связь между записями (оценка параметров модели Феллеги и Сунтера с помощью ЭМ (ожидание-максимизация).

RELAIS был реализован на Java и R и имеет архитектуру базы данных (MySQL).

Еще одна документация о связи между записями доступна в проекте ESSnet Data Integration .

djhurio
источник