Jak określić ważne atrybuty?


15

Załóżmy, że zestaw luźno ustrukturyzowanych danych (np. Tabele internetowe / połączone otwarte dane), złożony z wielu źródeł danych. Nie ma wspólnego schematu, po którym następowałyby dane, a każde źródło może używać atrybutów synonimów do opisywania wartości (np. „Narodowość” vs. „urodzony w”).

Moim celem jest znalezienie pewnych „ważnych” atrybutów, które w jakiś sposób „definiują” byty, które opisują. Tak więc, gdy znajdę tę samą wartość dla takiego atrybutu, będę wiedział, że dwa opisy dotyczą najprawdopodobniej tego samego bytu (np. Tej samej osoby).

Na przykład atrybut „lastName” jest bardziej dyskryminujący niż atrybut „narodowość”.

Jak mogę (statystycznie) znaleźć takie atrybuty, które są ważniejsze od innych?

Naiwnym rozwiązaniem byłoby pobranie średniego IDF wartości każdego atrybutu i uczynienie z tego czynnika „ważności” atrybutu. Podobne podejście polegałoby na policzeniu, ile różnych wartości pojawia się dla każdego atrybutu.

W uczeniu maszynowym widziałem pojęcie funkcji lub wyboru atrybutów, ale nie chcę odrzucać pozostałych atrybutów, chcę tylko przypisać wyższą wagę najważniejszym.

Odpowiedzi:


16

Możliwym rozwiązaniem jest obliczenie przyrostu informacji związanego z każdym atrybutem:

Zysk informacji

Początkowo masz cały zestaw danych i oblicz przyrost informacji dla każdego elementu. Element o największym zysku informacji jest tym, którego należy użyć do podzielenia zestawu danych (biorąc pod uwagę wartości elementu). Następnie wykonaj te same obliczenia dla każdego elementu (ale te wybrane) i zawsze wybierz ten, który najlepiej opisuje / odróżnia wpisy od zestawu danych.

Dostępne są implementacje dla takich obliczeń. Drzewa decyzyjne zwykle opierają swój wybór funkcji na funkcjach zapewniających najlepszy przyrost informacji. Możesz użyć wynikowej struktury drzewa, aby znaleźć te ważne elementy.


Czy to entropia? Jestem zdezorientowany.
Valentas

Przepraszam za późną odpowiedź. Aby uzyskać informacje ma zmniejszyć ogólną entropii; więc są to w zasadzie ta sama koncepcja. Spójrz na definicję „entropii” i „zdobywania informacji”.
Rubens

7

Właściwie jest tu więcej niż jedno pytanie:

  1. Jak pracować na schematach / luźnych / brakujących danych
  2. Jak oznaczyć osobę (z tego, co rozumiem bez nadzoru) i utworzyć identyfikator
  3. Jak wytrenować system, aby mógł powiedzieć ci, jakich atrybutów powinieneś użyć, aby zidentyfikować osobę

Jak wspomniano Rubens, do obliczania najważniejszych atrybutów na podstawie zdobywania informacji można użyć metod drzewa decyzyjnego , w szczególności lasów losowych, jeśli już udało się znaleźć sposób na oznaczenie osoby.

Jeśli jednak nie masz żadnych informacji na temat etykiet, możesz użyć widoku eksperta do wstępnego wyboru atrybutów. Następnie dokonujesz klasyfikacji bez nadzoru w celu odzyskania etykiet. Na koniec możesz wybrać najważniejsze pola przy użyciu Losowego lasu lub innych metod, takich jak Bayesian Belief Networks .

Aby to osiągnąć, potrzebujesz również kompletnego zestawu danych. Jeśli Twój zestaw danych jest luźny, musisz ręcznie lub heurystycznie znaleźć sposób na powiązanie atrybutów wskazujących to samo z różnymi nazwami. Co więcej, możesz użyć technik imputacji , takich jak metoda maksymalizacji oczekiwań i uzupełnić zestaw danych. Możesz także współpracować z Bayesian Networks i pozostawić brakujące pola bez zmian.


2

Wiele technik. Jeśli twój system informacyjny ma dołączony atrybut decyzyjny lub etykiety, najlepszym sposobem, jaki znalazłem, jest użycie redukcji atrybutów opartej na przybliżonym zestawie. Sprawdź algorytm szybkiej redukcji autorstwa Qiang Shen i Richarda Jensena.

Jeśli masz nieznakowane dane, sprawdź Principal Component Analysis (PCA) .


0

Ze względu na to po prawie 5 latach pomyślałem, że mogę podzielić się tym, co faktycznie wykorzystałem w mojej doktoracie, aby rozwiązać ten problem, który nie jest nowy, lub wkład mojego doktora, na wypadek, gdyby pomógł komuś innemu.

Miarą, której użyliśmy do wyboru ważnych atrybutów, jest średnia harmoniczna (inaczej F-miara) pomiędzy supporti discriminability.

Obsługa atrybutu p intuicyjnie określa, jak często podmioty w naszym zestawie danych zawierają wartości tego atrybutu:

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

gdzie instancje (p) to zbiór encji, które mają wartość dla p, i | D | to liczba jednostek w zbiorze danych D.

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

gdzie wartości (p) jest zbiorem (odrębnych, ponieważ jest to zestaw) wartości, które atrybut p może mieć w naszym zestawie danych. Jest to znormalizowane przez liczbę jednostek, które faktycznie mają wartość tego atrybutu.

Innymi słowy, wsparcie mierzy częstotliwość, z jaką p pojawia się w zbiorze danych, a dyskryminacja wskazuje, jak blisko bycia „kluczem” jest ten atrybut.

Aby uzyskać więcej informacji, przeczytaj moją rozprawę (sekcja 4.3.2) lub krótszą wersję w naszym dokumencie EDBT 2019 (sekcja 2).

Dziękujemy wszystkim za konstruktywne odpowiedzi!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.