Ada banyak opsi yang tersedia di R. Tempat yang bagus untuk melihat adalah caretpaket yang menyediakan antarmuka yang bagus untuk banyak paket dan opsi lainnya. Anda dapat melihat situs webnya di sini . Ada banyak pilihan di luar sana, tetapi saya akan mengilustrasikannya.
Berikut ini adalah contoh penggunaan filter sederhana menggunakan Rdataset "mtcars" bawaan (ditunjukkan di bawah).
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Sekarang beberapa pengaturan kode (memuat paket, dll.):
# setup a parallel environment
library(doParallel)
cl <- makeCluster(2) # number of cores to use
registerDoParallel(cl)
library(caret)
Dan kita dapat menyesuaikan model sederhana untuk memilih variabel:
fit1 <- sbf(mtcars[, -1], mtcars[, 1],
sbfControl =
sbfControl(functions = rfSBF, method = "repeatedcv", repeats = 10)
)
Melihat hasilnya, kita mendapatkan:
fit1
Selection By Filter
Outer resampling method: Cross-Validated (10 fold, repeated 10 times)
Resampling performance:
RMSE Rsquared RMSESD RsquaredSD
2.266 0.9224 0.8666 0.1523
Using the training set, 7 variables were selected:
cyl, disp, hp, wt, vs...
During resampling, the top 5 selected variables (out of a possible 9):
am (100%), cyl (100%), disp (100%), gear (100%), vs (100%)
On average, 7 variables were selected (min = 5, max = 9)
Akhirnya kita bisa plot variabel yang dipilih (dalam fit1$optVariables) terhadap hasil, mpg:
library(ggplot2)
library(gridExtra)
do.call(grid.arrange,
lapply(fit1$optVariables, function(v) {
ggplot(mtcars, aes_string(x = v, y = "mpg")) +
geom_jitter()
}))
Menghasilkan grafik ini: 