2017-04-26 8 views
0

Ich versuche, ein Modell zur Vorhersage der WaitingTime-Variable zu entwickeln. Ich verwende eine zufällige Gesamtstruktur für den folgenden Datensatz.Hohe OOB-Fehlerrate für zufällige Gesamtstruktur

$ BookingId   : Factor w/ 589855 levels "00002100-1E20-E411-BEB6-0050568C445E",..: 223781 471484 372126 141550 246376 512394 566217 38486 560536 485266 ... 
$ PickupLocality  : int 1 67 77 -1 33 69 67 67 67 67 ... 
$ ExZone    : int 0 0 0 0 1 1 0 0 0 0 ... 
$ BookingSource   : int 2 2 2 2 2 2 7 7 7 7 ... 
$ StarCustomer   : int 1 1 1 1 1 1 1 1 1 1 ... 
$ PickupZone   : int 24 0 0 0 6 11 0 0 0 0 ... 
$ ScheduledStart_Day : int 14 20 22 24 24 24 31 31 31 31 ... 
$ ScheduledStart_Month : int 6 6 6 6 6 6 7 7 7 7 ... 
$ ScheduledStart_Hour : int 14 17 7 2 8 8 1 2 2 2 ... 
$ ScheduledStart_Minute : int 6 0 58 55 53 54 54 0 12 19 ... 
$ ScheduledStart_WeekDay: int 1 7 2 4 4 4 6 6 6 6 ... 
$ Season    : int 1 1 1 1 1 1 1 1 1 1 ... 
$ Pax     : int 1 3 2 4 2 2 2 4 1 4 ... 
$ WaitingTime   : int 45 10 25 5 15 25 40 15 40 30 ... 

Ich Aufspalten des Datensatzes in die Ausbildung/Testuntergruppen in 80%/20% der Probenmethode und dann einen zufälligen Wald mit Ausnahme des BookingID Faktor ausgeführt wird. Dies wird nur verwendet, um die Vorhersagen zu validieren.

Das Problem ist, dass alle Versuche, OOB Fehlerrate zu versuchen und zu verringern und die Genauigkeit zu erhöhen, fehlgeschlagen sind. Die maximale Genauigkeit, die ich erreichen konnte, betrug ~ 23%.

Ich habe versucht, die Anzahl der verwendeten Funktionen, verschiedene ntree und mtry Werte, verschiedene Trainings/Test-Verhältnisse und auch nur Daten mit WaitingTime < = 40 zu ändern. Mein letzter Versuch war MrFlick Vorschlag zu folgen und die gleiche Stichprobengröße für alle Klassen erhalten die gleiche Stichprobengröße für alle Klassen meiner Vorhersagevariablen (WaitingTime). 1

tempdata <- subset(tempdata, WaitingTime <= 40) 
rndid <- with(tempdata, ave(tempdata$Season, tempdata$WaitingTime, FUN=function(x) {sample.int(length(x))})) 

data <- tempdata[rndid<=27780,] 

Kennen Sie alle anderen Möglichkeiten, wie ich zumindest Genauigkeit über 50% erreichen kann?

Aufzeichnungen von WaitingTime Klasse:

Vielen Dank im Voraus!

Antwort

0

Mit den RandomForest-Hyperparametern zu vermischen wird Ihre Leistung fast sicher nicht signifikant steigern.

Ich würde vorschlagen, einen Regressionsansatz für Ihre Daten zu verwenden. Da die Wartezeit nicht kategorisch ist, funktioniert ein Klassifizierungsansatz möglicherweise nicht sehr gut. Ihr Klassifizierungsmodell verliert die Bestellinformationen 5 15 usw.

Eine Sache zum ersten Versuch ist es, eine einfache lineare Regression zu verwenden. Bing die vorhergesagten Werte aus der Testmenge und berechne die Genauigkeit neu. Besser? Schlechter? Wenn es besser ist, dann gehen Sie weiter und versuchen Sie ein RandomForest-Regressionsmodell (oder wie ich es vorziehen würde, Gradient boosted Maschinen).

Zweitens ist es möglich, dass Ihre Daten nicht vorhersagbar für die Variable sind, die Sie interessiert. Vielleicht wurden die Daten irgendwie stromaufwärts versaut. Es könnte eine gute Diagnose sein, zuerst die Korrelation und/oder die gegenseitige Information der Prädiktoren mit dem Ergebnis zu berechnen.

Auch mit so vielen Kategorien Etiketten, 23% könnte eigentlich nicht so schlecht sein. Die Wahrscheinlichkeit, dass ein bestimmter Datenpunkt basierend auf Zufallsraten richtig beschriftet wird, ist N_class/N. Die Genauigkeit eines zufälligen Schätzmodells beträgt also nicht 50%. Sie können die adjusted rand index berechnen, um zu zeigen, dass es besser ist als Zufallsraten.

+0

Vielen Dank für Ihre Antwort thc. Folgt Eurer Führung und kehrt zurück. –

+0

Hallo thc, Ich lief einfache Regression gegen meine Datenmenge und bekam eine Sme von 145.1712. Ich habe auch auf Korrelation überprüft und festgestellt, dass es keine Korrelation zwischen den Variablen gibt. Ich muss immer noch den angepassten Rand-Index berechnen, obwohl ich andere Algorithmen ausprobieren möchte, vielleicht gibt es einen, der bessere Vorhersagen liefert. –

Verwandte Themen