Verwendung von NNET zur Klassifizierung

8

Ich bin neu in neuronalen Netzen und habe eine Frage zur Klassifizierung mit dem nnet-Paket.

Ich habe Daten, die eine Mischung aus numerischen und kategorischen Variablen sind. Ich wollte eine Vorhersage gewinnen, indem ich nnet und einen Funktionsaufruf wie

verwende %Vor%

, aber dies ergibt ein anderes Ergebnis als wenn ich einen Datenrahmen mit nur numerischen Versionen der Variablen verwende (d. h. alle Faktoren in numerische umwandeln (außer meiner Vorhersage WL)).

Kann mir jemand erklären, was hier passiert? Ich denke, nnet interpretiert die Variablen anders, aber ich würde gerne verstehen, was passiert. Ich schätze es schwierig, ohne irgendwelche Daten, um das Problem neu zu erstellen, aber ich schaue nur auf eine hochrangige Erklärung, wie neuronale Netzwerke mit nnet angepasst werden. Ich kann das nirgendwo finden. Vielen Dank.

%Vor%

vs

%Vor%     
Kharoof 16.11.2013, 11:39
quelle

1 Antwort

10

Der Unterschied, nach dem Sie suchen, kann mit einem sehr kleinen Beispiel erklärt werden:

%Vor%

Bei der Anpassung von Modellen in R sind die Faktorvariablen tatsächlich in mehrere Indikator- / Dummy-Variablen aufgeteilt .

Daher wird eine Faktorvariable x = c('1', '2', '3') tatsächlich in drei Variablen aufgeteilt: x1 , x2 , x3 , von denen eine den Wert 1 enthält, während andere den Wert 0 enthalten. Da die Faktoren {1, 2, 3} außerdem erschöpfend sind, muss einer (und nur einer) von x1 , x2 , x3 eins sein. Daher sind die Variablen x1 , x2 , x3 nicht unabhängig seit x1 + x2 + x3 = 1 . Daher können wir die erste Variable x1 ablegen und nur die Werte von x2 und x3 im Modell beibehalten und feststellen, dass die Ebene 1 ist, wenn sowohl x2 == 0 als auch x2 == 0 .

Das sehen Sie in der Ausgabe von nnet ; Wenn x ein Faktor ist, gibt es tatsächlich length(levels(x)) - 1 Eingaben für das neuronale Netzwerk und wenn x eine Zahl ist, dann gibt es nur eine Eingabe für das neurale Netzwerk, die x ist .

Die meisten R-Regressionsfunktionen ( nnet , randomForest , glm , gbm usw.) führen dieses Mapping von einer Faktorebene zu Dummy-Variablen intern durch und man muss sich dessen nicht bewusst sein ein Benutzer.

Nun sollte klar sein, was der Unterschied zwischen der Verwendung eines Datasets mit factors und einem Dataset mit numbers , das das factors ersetzt, ist. Wenn Sie die Umwandlung in numbers vornehmen, sind Sie:

  1. Verlust der einzigartigen Eigenschaften jeder Ebene und Quantisierung der Unterschiede zwischen ihnen.
  2. Erzwingen einer Reihenfolge zwischen den Ebenen

Dies führt zu einem etwas einfacheren Modell (mit weniger Variablen, da wir dummy Variablen für jede Ebene nicht benötigen), ist aber oft nicht die richtige Vorgehensweise.

    
musically_ut 16.11.2013, 12:18
quelle

Tags und Links