Seite 1 von 1

Attribute Auffüllen mit kNN

Verfasst: 19. Feb 2010 20:58
von DanielR
Hey.

Ich kämpfe mich gerade durch die 7. Übung, in der man ja fehlende Attribute mit kNN auffüllen soll.
Hierbei wird (da ist die MuLö meiner Meinung nach ausnahmsweise etwas kurz geraten) für Beispiel 13 Outlook=Rainy gesetzt.

Ich habe (versucht zu) rekonstruieren, dass für diese Wahl wohl die Nutzung der Nachbarn 10,16 und 5 eingegangen ist. Dafür wurde für Beispiel 5 aber auch der aufgefüllte Wert für temperature hinzugenommen.
Ist das nicht etwas ungünstig?
Damit wird ja das Auffüllen der Attribute abhängig von der Reihenfolge der Auffüllungen.
Ich habe die Nachbarn immer auf der unaufgefüllten Menge gesucht, und somit für Beispiel 13 Outlook=Sunny (durch Beispiele 9,10 und 16) gesetzt.

Ist wahrscheinlcih eine Designentscheidung, wie man das macht. Ich bevorzuge "meine Variante", weil ich dann zum auffüllen wirklich nur echte (und nicht schon interpolierte) Information nutze und damit das auffüllen deterministisch (und nicht von der Reihenfolge abhängig) ist.

Wie seht ihr das? Oder hab ich mich einfach nur verrechnet? :shock:

Re: Attribute Auffüllen mit kNN

Verfasst: 19. Feb 2010 21:50
von ~usz
Hallo,

also ich hab das selbe wie du raus: Outlook = Sunny mit Beispielen 9, 10, 16. Angenommen es handelt sich nicht um einen Flüchtigkeitsfehler, klingt deine Theorie imho plausibel :)

Gruß

Re: Attribute Auffüllen mit kNN

Verfasst: 21. Feb 2010 17:01
von ZERG
deine schlussfolgerung kann ich nachvollziehn und würde auch auf die selben ergebnisse kommen. würde auch mal gerne wissen wie man nun in der klausur vorgehen sollte....

Re: Attribute Auffüllen mit kNN

Verfasst: 22. Feb 2010 10:54
von Sulzmann
Sowohl das Auffüllen mittels aller, auch der eben aufgefüllten Instanzen als auch das Auffüllen mittels der ursprünglichen Daten haben ihre Berechtigung.

Ersteres eignet sich gut, wenn wir viele unvollständige und wenige vollständige Daten haben. Die geringe Anzahl vollständiger Daten kann dazuführen, daß die nächsten Nachbarn teilweise weit entfernt sind. Es würde sich also anbieten, zuerst die Daten aufzufüllen, bei denen man sich sehr sicher ist (also nahe Nachbarn haben), und anschließend die so erhalten Daten auch für die "unsicheren" Instanzen zum Auffüllen zu verwenden. Dieser Grundgedanke wird auch im Semi-supervised Learning verwendet, bei dem man wenige gelabelte und viele ungelabelte Daten zur Verfügung hat.

Zweiteres macht im umgekehrten Fall Sinn, also viele Instanzen vollständig und wenige unvollständig. Hier kann quasi darauf verzichtet werden, aufgefüllte Instanzen zum Auffüllen zu verweden, da ja genügend sichere Datenpunkte vorhanden sind.

Sollte eine derartige Aufgabe in der Klausur vorkommen, werden wir die Vorgehensweise explizit in der Aufgabenstellung vorgeben.