Следует ли удалять повторяющиеся записи перед запуском алгоритма связывания записей EM?

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

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

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

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

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 возможных пар записей.

e.g.

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-алгоритм передаются одни и те же записи, сравниваемые сами с собой:

e.g.

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

Это не обязательно, это всего лишь остаток от формирования пространства сравнения.

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

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

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

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

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

В конечном счете:

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

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


person Chuck    schedule 03.10.2017    source источник


Ответы (1)


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

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

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

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

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

person olooney    schedule 03.10.2017
comment
Очень ценю ваш продуманный ответ - я понимаю, что вы говорите о конвергенции (у нас были такие проблемы в прошлом). По сути, эти повторяющиеся совпадения существуют только в результате операции join в Python; если бы я правильно сопоставлял эти записи, они бы не прошли. Однако я полностью согласен с тем, что может быть необходимо искусственно включать больше совпадений в каждый из наших наборов данных; будет ли включение этих дубликатов статистически правильным/единообразным способом, поскольку для каждого географического региона будет свой набор дубликатов? - person Chuck; 04.10.2017