1

Ich habe einen Trainingsdatensatz von 20 Spalten, die alle Faktoren sind, die ich zum Trainieren eines Modells verwenden muss. Ich habe Testdatensätze erhalten, auf die ich mich bewerben muss mein Modell für Vorhersagen und submit.Umgang mit verschiedenen Faktorstufen in Zug- und Testdaten

Ich machte erste Datenexploration und nur aus Neugier überprüft die Ebenen der Trainingsdaten und Testdaten Ebenen, da wir mit allen kategorischen Variablen beschäftigen. Zu meiner Bestürzung haben die meisten der Kategorien (Variablen) unterschiedliche Ebenen in Ausbildung und Testdatensatz.

zum Beispiel

table(train$cap.shape) #training data column levels 
    b c f k x 
196 4 2356 828 2300 

table(test$cap.shape) #test data 

b f s x 
256 796 32 1356 

Hier habe ich eine Kategorie s Extra in Testdatensatz, wie kann ich diese Fälle behandeln, ist die zusätzliche Kategorie von c in der Ausbildung sehr niedrig, so dass ich dachte, dass zu fusionieren Faktor mit anderen Faktor basierend auf wie seine Verteilung mit abhängigen Variablen ist, aber ich bin fest, wie mit der zusätzlichen Ebene im Test umzugehen.

Weitere Beispiele

table(train$odor) #train 
    c f m n p s y 
189 2155 36 2150 2 576 576 

table(test$odor) #test 

    a c f l n p 
400 3 5 400 1378 254 

In dieser Spalte haben wir 2 zusätzliche Ebene in Test mit erheblicher Anzahl von Fällen, in Testdatensatz. Wie kann ich mit diesen Diskrepanzen umgehen?

table(train$sColour) #train 
    b h k n o r w y 
    48 1627 700 753 48 72 2388 48 

    table(test$sColour) #test 
    h k n u 
    5 1172 1215 48 

Hier haben wir zusätzlichen Faktor von u

Soll ich zuerst nur auf dem Trainingssatz ein Modell erstellen und die wichtigen Prädiktoren finde und dann über die Faktorstufen sorgen?

+0

@Tchotchke Ich möchte nicht die zusätzlichen Faktoren im Test löschen, ich möchte wissen, wie kann ich mit diesen zusätzlichen Faktoren umgehen, so dass das Modell keinen Fehler wirft. –

+1

@Tchotchke könnte es sein, dass ich die Test- und Trainingsdaten kombinieren und alle Spalten umgestalten und die Daten dann erneut teilen soll? –

+1

Sie haben Recht, das ist mein Missverständnis. Was Sie vorschlagen, macht Sinn. Eine größere Frage, die ich bezüglich Ihrer Daten hatte, ist jedoch, dass die Test- und Train-Sets extrem unterschiedliche Verteilungen haben (zumindest entlang dieser Faktoren), also wird es wahrscheinlich eine schwierige Modellierungsaufgabe sein. – Tchotchke

Antwort

1

Verschiedene Feature-Sets verletzen eine Grundregel des maschinellen Lernens. Die Trainings- und Testdaten müssen den gleichen Datenraum repräsentieren. Diese nicht; Obwohl jedes Paar einen gemeinsamen Kern von Features (Dimensionen) hat, um es auf demselben Modell zu verwenden, müssten Sie jedes Set auf nur die gemeinsamen Features reduzieren oder beide auf die Vereinigung der Features erweitern und "do not not" ausfüllen "oder semantisch null Werte für die zusätzlichen Funktionen.

+3

Ich glaube nicht, dass das OP angibt, dass es verschiedene Merkmale gibt, aber unterschiedliche Werte von kategorischen oder Faktormerkmalen. Wenn das der Fall ist, dann denke ich, dass dies ein Duplikat ist (wie ich gerade zu der Frage kommentierte), und das Problem wird durch meine Antwort dort gelöst. – Tchotchke

Verwandte Themen