Мне интересно связать записи между двумя наборами данных по имени, фамилии и году рождения. Можно ли это сделать с помощью алгоритма 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
(Хотя при этом я до сих пор не полностью следую «почему» и «как», и каковы входы и выходы, а также предположения и насколько они ограничены).
Ответы:
Абсолютно EM-алгоритм был использован для вероятностного связывания. Есть много статей на эту тему, следующие из Winkler могут быть полезны в отношении теоретических деталей:
http://www.census.gov.edgekey.net/srd/papers/pdf/rr2000-05.pdf
Также здесь доступно программное обеспечение для связи данных, разработанное Кевином Кэмпбеллом:
http://the-link-king.com/
Программное обеспечение может быть свободно загружено, и Кевин Кэмпбелл предлагает поддержку за плату. Код написан на SAS, поэтому вам понадобится базовый пакет SAS.
источник
Существует программное обеспечение RELAIS, которое записывает связь с:
Еще одна документация о связи между записями доступна в проекте ESSnet Data Integration .
источник