Як вказати важливі атрибути?


15

Припустимо набір слабко структурованих даних (наприклад, веб-таблиці / пов'язані відкриті дані), що складається з багатьох джерел даних. Немає загальної схеми, за якою слідують дані, і кожне джерело може використовувати атрибути синоніму для опису значень (наприклад, "національність" проти "bornIn").

Моя мета - знайти деякі "важливі" атрибути, які якимось чином "визначають" сутності, які вони описують. Отже, коли я знайду однакове значення для такого атрибута, я буду знати, що ці два описи, швидше за все, приблизно однакові (наприклад, одна і та ж особа).

Наприклад, атрибут "lastName" є більш дискримінаційним, ніж атрибут "національність".

Як я міг (статистично) знайти такі атрибути, які важливіші за інші?

Наївним рішенням було б взяти середній IDF значень кожного атрибута і зробити це фактором "важливості" атрибута. Аналогічним підходом було б підрахувати, скільки різних значень з’являється для кожного атрибута.

Я бачив термін особливість або вибір атрибутів у машинному навчанні, але я не хочу відкидати решту атрибутів, я просто хочу поставити більшу вагу до найбільш важливих.

Відповіді:


16

Можливе рішення - обчислити приріст інформації, пов'язаний з кожним атрибутом:

Інформаційний приріст

Спочатку у вас є весь набір даних і обчислюється інформаційний приріст кожного елемента. Елемент з найкращим прибутком інформації - це той, який слід використовувати для розділення набору даних (враховуючи значення елемента). Потім виконайте однакові обчислення для кожного елемента (але вибрані) та виберіть завжди той, який найкраще описує / диференціює записи з вашого набору даних.

Для таких обчислень є реалізація. Дерева рішень зазвичай вибирають свій вибір на особливостях з найкращим отриманням інформації. Ви можете використовувати отриману структуру дерева, щоб знайти ці важливі елементи.


Це ентропія? Я збентежений.
Валентас

Вибачте за пізню відповідь. Для того, щоб отримати інформацію, щоб зменшити загальну ентропію; тож вони в основному одна і та ж концепція. Погляньте на визначення "ентропія" та "отримання інформації".
Рубенс

7

Насправді тут можна відповісти не одне питання:

  1. Як працювати над схемами / вільними / відсутніми даними
  2. Як позначити людину (з того, що я розумію без нагляду) та створити ідентифікатор
  3. Як навчити свою систему, щоб вона могла підказати, які атрибути слід використовувати, щоб визначити людину

Як згадував Рубенс, ви можете використовувати методи дерева рішень , зокрема Випадкові ліси для обчислення найважливіших атрибутів на основі отримання інформації, якщо ви вже знайшли спосіб визначити, як позначити людину.

Однак якщо у вас немає інформації про мітку, можливо, ви можете скористатися деяким експертним переглядом для попереднього вибору атрибутів. Після цього ви робите неконтрольовану класифікацію , щоб отримати свої мітки. Нарешті, ви можете обрати найважливіші поля, використовуючи випадковий ліс або інші методи, наприклад, Бейсійські вірогідні мережі .

Для того, щоб досягти всього цього, вам також потрібен повний набір даних. Якщо ваш набір даних вільний, вам доведеться вручну або евристично знайти спосіб з'єднання атрибутів, що вказують на одне і те ж з різними іменами. Більше того, ви можете використовувати методи імпутації , такі як метод максимізації очікування та заповнити набір даних. Або ви також можете працювати з Bayesian Networks і можете залишити пропущені поля такими, якими вони є.


2

Багато техніки там. Якщо у вашій інформаційній системі є доданий атрибут рішення або мітки, найкращий спосіб, який я знайшов, - це використовувати грубо зменшене набір атрибутів. Ознайомтеся з алгоритмом швидкого зменшення Qiang Shen та Richard Jensen.

Якщо у вас немає маркованих даних, перевірте аналіз основних компонентів (PCA) .


0

Просто заради цього, через майже 5 років, я подумав, що можу поділитися тим, що насправді використовував у докторантурі для вирішення цієї проблеми, яка не є новою, або внесок мого доктора наук, якщо це допомагає комусь іншому.

Міра, яку ми використовували для вибору важливих атрибутів, - це гармонічне середнє значення (aka F-міра) між supportі discriminability.

Підтримка атрибута p - це інтуїтивно зрозуміло, як часто об'єкти нашого набору даних містять значення цього атрибута:

support(p) = |instances(p)|/ |D|, 

де екземпляри (p) - це сукупність сутностей, які мають значення p, та | D | - кількість об'єктів у наборі даних D.

discriminability(p) = |values(p)| / |instances(p)|, 

де значення (p) - це набір (різних, оскільки це множина) значень, які може мати атрибут p у нашому наборі даних. Це нормалізується кількістю сутностей, які фактично мають значення для цього атрибута.

Іншими словами, підтримка вимірює частоту появи p у наборі даних, а дискримінантність вказує на те, наскільки близький до того, щоб бути "ключовим" цим атрибутом.

Більш детально ви можете прочитати мою дисертацію (Розділ 4.3.2), або ви можете знайти більш коротку версію в нашому документі EDBT 2019 (Розділ 2).

Дякую всім за ваші конструктивні відповіді!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.