Следует ли удалять повторяющиеся записи до запуска алгоритма 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

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

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

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

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

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

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

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

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

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам