Следует ли удалять повторяющиеся записи до запуска алгоритма 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. Только тогда вы узнаете, какой классификатор будет лучше обобщать для реальных данных.