2016-05-15 9 views
2

Ich habe eine Matrix wie folgt:Computing Error Rate zwischen zwei Spalten R

Real_Values Predicted_Values 
5.5   5.67 
6.9   7.01 
9.8   9.2 
6.5   6.1 
10   9.7 
1.5   1.0 
7.7   7.01 

mag ich die Fehlerrate meines Modells zwischen den vorhergesagten und realen Werten berechnen und im Idealfall eine Handlung zu tun. Ich habe mich gefragt, ob R bereits ein Paket hat, das genau das tut, so dass ich keine for-Schleifen vermeiden werde?

+0

Können Sie erläutern, was Sie mit "Fehlerquote" meinen? Zum Beispiel [MAPE] (https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)? – digEmAll

Antwort

0

Wenn Sie Restsumme von Quadraten berechnen möchten, geben Funktionen wie lm() diese Information bereits für Sie aus. Abhängig von der Funktion, die Sie verwendet haben, um Ihre Daten zu modellieren, ist der Zugriff auf den RSS-Begriff etwas anders.

auf Ihrem data_frame Basierend könnten Sie die RSS Formel wie folgt Schnell kodieren

datf <- as.data.frame(your_matix) 
datf$difsq <- (datf$Real_Values - datf$Predicted_Values)^2 
rss <- sum(datf$difsq) 
+0

Ich bin ziemlich neu im maschinellen Lernen, daher weiß ich nicht viel über die Validierungsmethoden, aber Real_Values ​​sind tatsächlich die bekannten Werte und Predicted_Values ​​sind Werte, die basierend auf 5-fach-Kreuzvalidierung vorhergesagt werden, jetzt möchte ich diese vergleichen Werte, um zu sehen, ob mein Modell gut funktioniert hat, und ich weiß nicht genau, welche Methode für diesen Zweck am besten ist, weil ich auch zwei andere Tabellen im selben Format von meinen beiden anderen Vorhersagemodellen habe, also möchte ich einige bekommen Maß, um zu zeigen, welches von diesen Modellen das beste ist! – user6336850

+0

RSS wird normalerweise zum Vergleichen linearer Modelle verwendet. Ich habe nicht viel Machine-Learning-Erfahrung, aber vielleicht kann dieser Link helfen [Link] (http://machinelearningmastery.com/compare-the-performance-of-machine-learning-algorithms-in-r/) – Nate

0

können Regressionsfehler Metriken wie der mittlere quadratische Fehler (RMSE) oder die Summe der quadrierten Fehler (SSE) von Hand berechnen wie von @ nathan-day hervorgehoben. Die meisten Implementierungen werden dies automatisch für Sie tun, so dass Sie dies normalerweise nicht manuell durchführen müssen.

Für den Plotvorgang werde ich jetzt ein etwas größeres Beispiel verwenden, mit mehr Proben, wie es besser zu verstehen ist (der iris Datensatz, der mit R geliefert wird). Zuerst haben wir ein lineares Modell trainieren, um das vierte Merkmal von den ersten drei Merkmalen vorherzusagen, welche bereits einige Metriken berechnet:

> model <- train(iris[,1:3], iris[,4], method = 'lm', metric = 'RMSE', trControl = trainControl(method = 'repeatedcv', number = 10, repeats = 10)) 
> print(model) 
Linear Regression 

150 samples 
3 predictors 

No pre-processing 
Resampling: Cross-Validated (10 fold, repeated 10 times) 

Summary of sample sizes: 134, 135, 135, 136, 134, 135, ... 

Resampling results 

RMSE Rsquared RMSE SD Rsquared SD 
0.19 0.942  0.0399 0.0253 

Der RMSE, SSE, usw. konnte nun von den vorhergesagten und tatsächlichen Werten des Ziels berechnet werden zu variabel von Hand:

predicted <- predict(model, iris[,1:3]) # perform the prediction 
actual <- iris[,4] 
sqrt(mean((predicted-actual)**2)) # RMSE 
sum((predicted-actual)**2) # SSE 

die geringfügigen Unterschiede zu den Ergebnissen der Modelltraining oben ergibt sich aus einer wiederholten Kreuzvalidierung verwendet (daher sind die Metriken, die unter „Resampling Ergebnisse“ gibt).

Für den Plotteil: Regressionsfehler kann leicht visualisiert werden, indem die vorhergesagte gegen die tatsächliche Zielvariable gezeichnet wird und/oder indem der Fehler gegen den tatsächlichen Wert aufgetragen wird. Die perfekte Anpassung wird durch die zusätzliche Linie in diesen Zeichnungen dargestellt. Auch dies kann leicht mit Standard-Tools erreicht werden:

plot(predicted~actual) 
abline(0,1) 

plot(predicted-actual~actual) 
abline(0,0) 

PS: wenn Sie nicht vertraut sind mit Regression/Klassifizierung Fehlermaß und robust ML Verfahren ich dringend einige Zeit empfehlen würde, die Ausgaben auf die Themen zu lesen - es wird wahrscheinlich sparen Sie später viel Kalk. Ich persönlich würde Applied Predictive Modeling von Max Kuhn (Betreuer des caret Pakets in R) und Kjell Johnson empfehlen, da es einfach zu lesen und sehr praktisch ist.