Извлечь коэффициенты / переменные из PLS в R для дерева решений или другого типа модели - PullRequest
0 голосов
/ 31 мая 2019

Я выполнил частичное наименьшее число квадратов (PLS) в R и хочу извлечь переменные, чтобы я мог запустить либо дерево решений, либо случайный лес, либо модель другого типа.

Я пробовал коэффициенты pls1 $

# split data into 2 parts for pls training (75%) and prediction (25%)
set.seed(1)
samp <- sample(nrow(newdata), nrow(newdata)*0.75)
analogous.train <- newdata[samp,]
analogous.valid <- newdata[-samp,]

#First use cross validation to find the optimal number of dimensions
pls.model = plsr(meanlog ~ ., data = analogous.train, validation = "CV")

# Find the number of dimensions with lowest cross validation error
cv = RMSEP(pls.model)
best.dims = which.min(cv$val[estimate = "adjCV", , ]) - 1
best.dims

#This told me that 8 dimensions was the best

#Now fit a model with 8 components and includes leave one out cross 
#validated predictions
pls1 <- plsr(meanlog ~ ., ncomp = best.dims, data = analogous.train, 
validation = "LOO")

#a fited model is often used to predict the response values of new 
#observations.
predict(pls1, ncomp = 8, newdata = analogous.valid)

Я хочу сами переменные, которые они создали. Например, PCA создает PC1, PC2 и т. Д. Я предположил (возможно, неправильно), что PLS делает то же самое.

1 Ответ

0 голосов
/ 18 июня 2019

Это в $scores. Если вы делаете

pls1$scores

Вы получите матрицу из 8 столбцов, оценки для каждой из скрытых переменных и строку для каждого наблюдения.

...