2013-06-21 89 views
0

我有72個觀測數據框(df)和592變量與一個因子類變量(總共593個變量,即dim(df)= 72 593)。我正在尋找一種方法來選擇7個變量(包括類變量),使用Receiver Operating Characteristics(ROC)來選擇最佳k值。我想用這七個變量用圖形模型進行分析,但我不想隨意選擇變量。我希望我的選擇在統計上是合理的。r使用knn的變量選擇

我想看到的是我的結果是一樣的東西:

變量V23,V120,V230,V333,V496,V585,V593是基於ROC的最高值選擇。

即我想執行高精度「最佳」預測變量的分類和選擇,以便我可以將這些變量用於圖形建模。

我試過使用插入符號包但我不知道如何操作它來選擇可用於其他分析的高精度變量(列)。

謝謝你們。肯定有人理解我。

謝謝。

kutex。

回答

0

我會做這樣的事情:

library(pROC) 

#' Select the N top variables with ROC analysis 
#' @param response the class variable name 
#' @param predictors the variables names from which to select 
#' @param data must contain the predictors as columns 
#' @param n the number of 
select.top.N.ROC <- function(response, predictors, data, n) { 
    n <- min(n, length(predictors)) 
    aucs <- sapply(predictors, function(predictor) { 
     auc(data[[response]], data[[predictor]]) 
    }) 
    return(predictors[order(aucs, decreasing=TRUE)][1:n]) 
} 

top.variables <- select.top.N.ROC("class", paste("V", 1:593, sep=""), myDataFrame, 7) 
cat(paste("Variables", paste(top.variables, collapse=", "), "were selected based on the highest value of ROC. ")) 

與任何單變量特徵選擇的方法,你可以選擇7個全相關的變量,不會給你任何額外的信息,所以選擇V23就已經足夠了。對於多元數據集,您應該考慮使用多元特徵選擇方法。