2017-01-15 5 views
1

Kann mir jemand ein detailliertes Beispiel für die Verwendung der Caret-Funktion rfe mit dem Modell glm oder glmnet geben? Ich habe versucht, so etwas wie diese:Wie funktioniert die rekursive Eliminierung von Funktionen mit logistischer Regression?

rfe_records <- Example_data_frame 

rfe_ctrl <- rfeControl(functions = caretFuncs, method = "repeatedcv", repeats = 5, verbose = TRUE, classProbs = TRUE, summaryFunction = twoClassSummary) 

number_predictors <- dim(rfe_records)[2]-1 

x <- dplyr::select(rfe_records, -outcomeVariable) 
y <- as.numeric(rfe_records$outcomeVariable) 

glmProfile <- rfe(x, y, rfeControl = rfe_ctrl, sizes = c(1:number_predictors), method="glmnet", preProc = c("center", "scale"), metric = "Accuracy") 
print(glmProfile) 

Aber die Ergebnisse, die ich bin immer noch nicht, was ich brauchte. I angegebene Genauigkeit als Metrik, aber ich habe:

Recursive feature selection 

Outer resampling method: Cross-Validated (10 fold, repeated 5 times) 

Resampling performance over subset size: 

Variables RMSE Rsquared RMSESD RsquaredSD Selected 
     1 0.5047 0.10830 0.04056 0.11869  * 
     2 0.5058 0.09386 0.04728 0.11332   
     3 0.5117 0.08565 0.04999 0.10211   
     4 0.5139 0.07490 0.05042 0.10048   
     5 0.5166 0.07678 0.05456 0.09966   
     6 0.5202 0.08203 0.06174 0.10822   
     7 0.5187 0.08471 0.06207 0.10893   
     8 0.5168 0.07850 0.05939 0.09697   
     9 0.5175 0.08228 0.05966 0.10068   
     10 0.5176 0.08180 0.05980 0.10042   
     11 0.5179 0.08015 0.05950 0.09905   

The top 1 variables (out of 1): 
    varName 
+1

Möglicherweise Thema für diese Website, da es fast ausschließlich mit R-Programmierproblemen befasst. –

+0

Wohin sagen Sie, dass Sie eine logistische Regression durchführen? – EdM

+1

Fragen zur Verwendung von Software sind im Allgemeinen hier nicht verfügbar. Dies ist jedoch nicht wirklich eine * Programmier * -Frage, daher wird es auch auf [SO] nicht im Thema sein. Es scheint nach einem Tutorial zu fragen; Das ist überall auf dem SE-System, AFAIK. – gung

Antwort

1

Nach this pagecaret die Klasse der Zielgröße verwendet, wenn es ob Regression verwenden bestimmt und Klassifizierung mit einer Funktion wie glmnet, die entweder tun. Gemäß Ihrem Code haben Sie die Ergebnisvariable als numerisch mit as.numeric() festgelegt, so dass glmnet sich für die Regression entschieden hat, nicht für die Klassifizierung, die Sie beabsichtigten. Geben Sie Ihre Ergebnisvariable als zweistufigen Faktor an, um stattdessen die Klassifizierung zu erhalten.

Verwandte Themen