Wie spezifiziere ich wichtige Attribute?


15

Angenommen, ein Satz lose strukturierter Daten (z. B. Webtabellen / verknüpfte offene Daten) besteht aus vielen Datenquellen. Es gibt kein gemeinsames Schema, dem die Daten folgen, und jede Quelle kann zur Beschreibung der Werte Synonymattribute verwenden (z. B. "Nationalität" vs "bornIn").

Mein Ziel ist es, einige "wichtige" Attribute zu finden, die die Entitäten, die sie beschreiben, irgendwie "definieren". Wenn ich also den gleichen Wert für ein solches Attribut finde, weiß ich, dass die beiden Beschreibungen höchstwahrscheinlich dieselbe Entität (z. B. dieselbe Person) betreffen.

Beispielsweise ist das Attribut "Nachname" diskriminierender als das Attribut "Nationalität".

Wie könnte ich (statistisch) solche Attribute finden, die wichtiger sind als andere?

Eine naive Lösung wäre, die durchschnittliche IDF der Werte jedes Attributs zu nehmen und dies zum "Wichtigkeits" -Faktor des Attributs zu machen. Ein ähnlicher Ansatz wäre, zu zählen, wie viele unterschiedliche Werte für jedes Attribut angezeigt werden.

Ich habe den Begriff Feature oder die Attributauswahl beim maschinellen Lernen gesehen, möchte aber die verbleibenden Attribute nicht verwerfen, sondern nur die wichtigsten mit einer höheren Gewichtung versehen.

Antworten:


16

Eine mögliche Lösung besteht darin, den mit jedem Attribut verbundenen Informationsgewinn zu berechnen :

Informationsgewinn

Zunächst haben Sie den gesamten Datensatz und berechnen den Informationsgewinn für jedes Element. Das Element mit dem besten Informationsgewinn ist dasjenige, das Sie zum Partitionieren des Datasets verwenden sollten (unter Berücksichtigung der Elementwerte). Führen Sie dann für jedes Element die gleichen Berechnungen durch (aber die ausgewählten), und wählen Sie immer diejenige, die die Einträge aus Ihrem Datensatz am besten beschreibt / unterscheidet .

Für solche Berechnungen stehen Implementierungen zur Verfügung. Entscheidungsbäume stützen ihre Merkmalsauswahl normalerweise auf die Merkmale mit dem besten Informationsgewinn. Sie können die resultierende Baumstruktur verwenden, um diese wichtigen Elemente zu finden .


Ist das Entropie? Ich bin verwirrt.
Valentas

Entschuldigung für die späte Antwort. Informationen zu gewinnen bedeutet , die Gesamtentropie zu reduzieren . Sie sind also im Grunde das gleiche Konzept. Schauen Sie sich die Definition von "Entropie" und "Informationsgewinn" an.
Rubens

7

Tatsächlich gibt es hier mehr als eine Frage zu beantworten:

  1. So arbeiten Sie an schemenlosen / losen / fehlenden Daten
  2. Wie man eine Person kennzeichnet (nach meinem Verständnis unbeaufsichtigt) und eine Kennung erstellt
  3. So trainieren Sie Ihr System, damit es Ihnen sagt, welche Attribute Sie verwenden sollten, um die Person zu identifizieren

Wie Rubens bereits erwähnt hat, können Sie Entscheidungsbaummethoden verwenden, insbesondere Zufällige Wälder, um die wichtigsten Attribute basierend auf dem Informationsgewinn zu berechnen, wenn Sie bereits einen Weg gefunden haben, wie Sie eine Person kennzeichnen können.

Wenn Sie jedoch keine Beschriftungsinformationen haben, können Sie möglicherweise eine Expertenansicht für die vorläufige Attributauswahl verwenden. Anschließend führen Sie eine unbeaufsichtigte Klassifizierung durch, um Ihre Etiketten abzurufen. Zuletzt können Sie die wichtigsten Felder mit Random Forest oder anderen Methoden wie Bayesian Belief Networks auswählen .

Um dies alles zu erreichen, benötigen Sie außerdem einen vollständigen Datensatz. Wenn Ihr Datensatz locker ist, müssen Sie manuell oder heuristisch einen Weg finden, Attribute zu koppeln, die dasselbe Ding mit unterschiedlichen Namen anzeigen. Darüber hinaus können Sie Imputationstechniken wie die Expectation Maximization- Methode verwenden und Ihren Datensatz vervollständigen. Sie können auch mit Bayesian Networks arbeiten und fehlende Felder so lassen, wie sie sind.


2

Viele Techniken da draußen. Wenn an Ihr Informationssystem ein Entscheidungsattribut oder Bezeichnungen angehängt sind, ist der beste Weg, den ich gefunden habe, die grobe, satzbasierte Attributreduktion zu verwenden. Schauen Sie sich den Schnellreduktionsalgorithmus von Qiang Shen und Richard Jensen an.

Wenn Sie nicht gekennzeichnete Daten haben, überprüfen Sie die Hauptkomponentenanalyse (PCA) .


0

Aus diesem Grund dachte ich nach fast fünf Jahren, ich könnte mitteilen, was ich tatsächlich in meiner Promotion verwendet habe, um dieses nicht neue Problem zu lösen, oder einen Beitrag meiner Promotion, falls es jemand anderem hilft.

Das Maß, mit dem wir wichtige Attribute ausgewählt haben, ist das harmonische Mittel (auch bekannt als F-Maß) zwischen supportund discriminability.

Die Unterstützung eines Attributs p gibt intuitiv an, wie oft die Entitäten in unserem Datensatz Werte für dieses Attribut enthalten:

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

Dabei ist Instanzen (p) die Menge von Entitäten, die einen Wert für p haben, und | D | ist die Anzahl der Entitäten im Datensatz D.

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

Dabei ist values ​​(p) die Menge von (unterschiedlichen, da es sich um eine Menge handelt) Werten, die das Attribut p in unserem Dataset haben kann. Dies wird durch die Anzahl der Entitäten normalisiert, die tatsächlich einen Wert für dieses Attribut haben.

Mit anderen Worten, die Unterstützung misst die Häufigkeit, mit der p im Datensatz erscheint, und die Diskriminierbarkeit gibt an, wie nahe es ist, ein "Schlüssel" für dieses Attribut zu sein.

Weitere Informationen finden Sie in meiner Dissertation (Abschnitt 4.3.2) oder in unserem EDBT 2019-Artikel (Abschnitt 2).

Vielen Dank für Ihre konstruktiven Antworten!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.