Следует ли удалять дублирующие записи до запуска алгоритма EM Record Linkage?

Пример настройки

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

После моей блокировки я получаю следующий набор данных:

[Это примерный набор данных, а не мои настоящие данные]

1st Dataset: Region AB_1, df1 FName_1 SName_1 Area_1 Age_1 1a Ben Nevis AB 30 2a Ben Neviss AB 30 3a Andy Red AB 35 4a Andy Redd AB 35 2nd Dataset: Region AB_2, df2 FName_2 SName_2 Area_2 Age_2 1b Ben Nevis AB 30 2b Ben Neviss AB 30 3b Andy Red AB 35 4b Andy Redd AB 35 

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

Я сравниваю приведенные выше наборы данных вместе с использованием алгоритма EM, основанного на алгоритме Fellegi Sunter, с переменными согласования «имя» и «фамилия».

Я создаю свое сравнительное пространство, сравнивая каждую запись в наборе данных 1 с каждой отдельной записью в наборе данных 2, то есть 4 * 4 = 16 возможных пар записей.

например

 Record 1 vs Record 2 1a 1b 1a 2b 1a 3b 1a 4b 2a 1b 2a 2b 2a 3b 2a 4b 3a 1b 3a 2b 3a 3b 3a 4b 4a 1b 4a 2b 4a 3b 4a 4b 

Проблема

Однако это означает, что одни и те же записи по сравнению с самим собой переходят в мой EM-алгоритм:

например

 1a 1b 2a 2b 3a 3b 4a 4b 

Они не требуются, они всего лишь остаток формирования пространства сравнения.

Поскольку алгоритм ЭМ является «алгоритмом обучения», который оптимизирует переменные весы согласования и несогласия на основе исходной информации, я по существу предоставляю ему больше информации о тренировках.

Это отражено в результатах;

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

Однако, если я удалю эти записи после запуска моего алгоритма, я получаю только 2486 записей выше 0,9 (используя мой реальный набор данных).

Т.е. более выборочно, если я включу эти повторяющиеся примеры.

В конце концов:

Для меня нет смысла включать их в EM, но я думаю, что удаление снижает точность моего алгоритма.

Должен ли я удалять эти известные дубликаты, прежде чем запускать EM?

Ну, вам обязательно нужно включить несколько примеров матчей в учебный набор.

Yancey упоминает, что в своем опыте EM начинает демонстрировать плохую конвергенцию, когда доля матчей составляет менее 5%. В той же работе он предлагает искусственно обогатить тренировочный набор дополнительными парами.

В конечном итоге мы пытаемся построить функцию, которая оценивает общую вероятность того, что две записи будут соответствовать, с учетом вектора соглашения, из конечного подмножества ( S ) всех возможных комбинаций A x B. Если совпадений нет, то я могу немедленно дать вам эту функцию: p (a, b) = 0 .

Тем не менее, вы говорите, что вы все еще получаете несколько баллов 0,9 даже после удаления некоторых явных дубликатов. Это говорит о том, что ваш набор данных содержит множество естественных совпадений, т.е. записи, которые не имеют одинакового идентификатора, но соответствуют имени / возрасту / области. Это хорошо. Тем не менее, нет причин только тренироваться в этих естественных матчах / дубликатах. Поскольку ваш алгоритм регистрации ссылок, несомненно, будет видеть много точных совпадений при работе на реальных данных, он также должен быть подвержен точным совпадениям во время обучения.

Наконец, я скажу, что использование одного и того же 0,9 порога для каждого может не иметь смысла. Эти вероятности относятся к обучающему набору S , а не к реальному миру. И поскольку использовались два разных набора для обучения, они даже не сравнимы друг с другом! Вместо этого вы должны создать набор парных пакетов с известным числом правильных и ложных совпадений. Затем определите порог, который соответствует отношению ложных срабатываний и ложных негативов, которые вы считаете оптимальными. Это часто делается путем рисования кривой ROC . Только тогда вы узнаете, какой классификатор лучше всего обобщить на реальные данные.