Предположим, что набор данных со слабой структурой (например, веб-таблицы / связанные открытые данные) состоит из множества источников данных. Не существует общей схемы, за которой следуют данные, и каждый источник может использовать атрибуты синонимов для описания значений (например, «национальность» или «рожденный»).
Моя цель - найти некоторые «важные» атрибуты, которые каким-то образом «определяют» сущности, которые они описывают. Поэтому, когда я найду одинаковое значение для такого атрибута, я буду знать, что два описания, скорее всего, относятся к одному и тому же объекту (например, к одному и тому же человеку).
Например, атрибут «lastName» является более дискриминационным, чем атрибут «национальность».
Как я мог (статистически) найти такие атрибуты, которые важнее других?
Наивным решением было бы взять среднее значение IDF значений каждого атрибута и сделать его фактором «важности» атрибута. Аналогичный подход заключается в подсчете количества различных значений для каждого атрибута.
Я видел термин «особенность» или «выбор атрибутов» в машинном обучении, но я не хочу отбрасывать оставшиеся атрибуты, я просто хочу придать большее значение наиболее важным из них.
На самом деле здесь есть несколько вопросов:
Как упомянул Рубенс, вы можете использовать методы дерева решений , в частности, Случайные леса», для расчета наиболее важных атрибутов на основе получения информации, если вы уже нашли способ определить, как маркировать человека.
Тем не менее, если у вас нет информации о метках, возможно, вы можете использовать некоторые экспертные представления для предварительного выбора атрибутов. После этого вы делаете неконтролируемую классификацию , чтобы получить ваши ярлыки. Наконец, вы можете выбрать наиболее важные поля, используя Random Forest или другие методы, такие как Bayesian Belief Networks. .
Чтобы добиться всего этого, вам также необходим полный набор данных. Если ваш набор данных потерян, вы должны вручную или эвристически найти способ связать атрибуты, указывающие одно и то же с разными именами. Более того, вы можете использовать методы вменения , такие как метод максимизации ожиданий, и дополнить свой набор данных. Или вы также можете работать с Байесовскими сетями и можете оставить пропущенные поля без изменений.
источник
Там много техник. Если ваша информационная система имеет прикрепленный атрибут решения или метки, лучший способ, который я нашел, - это использовать грубое сокращение атрибутов на основе набора. Посмотрите алгоритм быстрого сокращения, разработанный Цян Шеном и Ричардом Дженсеном.
Если у вас есть немеченые данные, проверьте Анализ основных компонентов (PCA) .
источник
Просто ради этого, спустя почти 5 лет, я подумал, что мог бы поделиться тем, что я на самом деле использовал в своей докторской диссертации для решения этой проблемы, которая не является новой или вкладом моей докторской диссертации, если это поможет кому-то еще.
Мера, которую мы использовали для выбора важных атрибутов, - это среднее гармоническое (или F-мера) между
support
иdiscriminability
.Поддержка атрибута p заключается в том, как часто сущности в нашем наборе данных содержат значения для этого атрибута:
где instances (p) - это набор сущностей, которые имеют значение для p, а | D | количество объектов в наборе данных D.
где values (p) - это набор (различных, так как это набор) значений, которые атрибут p может иметь в нашем наборе данных. Это нормализуется числом сущностей, которые действительно имеют значение для этого атрибута.
Другими словами, поддержка измеряет частоту, с которой p появляется в наборе данных, а различимость указывает, насколько близок этот ключ к «ключу».
Для получения более подробной информации вы можете прочитать мою диссертацию (Раздел 4.3.2), или вы можете найти более короткую версию в нашем документе EDBT 2019 (Раздел 2).
Спасибо всем за ваши конструктивные ответы!
источник