Набор данных, с которыми я работаю, может быть получен онлайн. Это набор данных, который содержит 569 наблюдений и 32 переменных. Первый столбец - идентификатор субъекта, второй - метка для экземпляра класса; то есть М (злокачественная опухоль) или В (доброкачественная опухоль). Следующие 30 атрибутов представляют собой действительные входные характеристики (предикторы), которые рассчитываются на основе оцифрованного изображения аспирата тонкой иглы (FNA) массы молочной железы. В наборе данных содержится 357 доброкачественных и 212 злокачественных случаев.
cancerdata <- read.csv("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data",head=FALSE)
Я уже разбил набор данных на набор для обучения и тестирования, используя следующий код.
set.seed(1245)
#Split the data into a training set and a test set by randomly selecting 119 observations/instances in your test set.
sample.size <- floor(0.79086116 * nrow(cancerdata))
train.index <- sample(seq_len(nrow(cancerdata)), size = sample.size)
train.set <- cancerdata[train.index,]
test.set <- cancerdata[-train.index,]
Что мне трудно понять, так это то, как мне выполнить 10-кратную перекрестную проверку с LASSO для этого набора данных, который имеет 30 предикторов. В прошлом я использовал:
cv.lasso <- cv.glmnet(train_set$x2, train_set$y, type.measure="mse", nfolds=10, alpha=1)
Но согласно этому набору данных существует 30 предикторов, поэтому 30 значений x могут принимать. Есть какой-либо способ сделать это? Нужно ли мне создать модель, в которой есть все переменные, а затем провести перекрестную проверку?