-
Notifications
You must be signed in to change notification settings - Fork 0
/
variable_selection_LASSO.R
28 lines (24 loc) · 984 Bytes
/
variable_selection_LASSO.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
###########################################
# Variable selection using LASSO
###########################################
fit_lasso <- glmnet(x=as.matrix(dataset[,-1]),
y=factor(dataset$diagnosis),
family="binomial",
standardize=TRUE,
alpha=1)
plot(fit_lasso,xvar="lambda",label=TRUE)
# Variable selection through cross validation
cv_lasso <- cv.glmnet(x=as.matrix(dataset[,-1]),
y=factor(dataset$diagnosis),
family="binomial",
standardize=TRUE,
alpha=1,
nfolds=15,
type.measure="class",
parallel= TRUE)
plot(cv_lasso)
coef<-coef(cvfit,s='lambda.min',exact=TRUE)
index<-which(coef!=0)
optimum_subset<-row.names(coef)[index]
optimum_subset<-c(optimum_subset[-1])
dataset_lasso <- dataset[,c("diagnosis",optimum_subset)]