【发布时间】:2021-10-15 14:42:58
【问题描述】:
我正在尝试在 R 中训练一个线性模型,起初我一直收到将列名添加到 X 的错误,当我通过添加 data.frame 修复该错误时,我收到了一个新错误 错误:出现意外符号: “meatPCR
它似乎包含我的下一行代码“set.seed(529(”作为我的火车代码行的一部分。有人可以解释一下吗?我该如何解决?
library(AppliedPredictiveModeling)
library(ggplot2)
library(lattice)
library(caret)
library(e1071)
library(corrplot)
library(lattice)
install.packages("reshape")
library(reshape)
data(tecator)
set.seed(1)
inSubset <- sample(1:dim(endpoints)[1], 10)
absorpSubset <- absorp[inSubset,]
endpointSubset <- endpoints[inSubset, 3]
newOrder <- order(-absorpSubset[,1])
absorpSubset <- absorpSubset[newOrder,]
endpointSubset <- endpointSubset[newOrder]
spectData <- as.data.frame(t(absorpSubset))
spectData$x <- 1:nrow(spectData)
spectData2 <- melt(spectData, id.vars = c("x"))
cols <- brewer.pal(9,"YlOrRd")[-(1:2)]
cols <- colorRampPalette(cols)(10)
spectTheme <- caretTheme()
spectTheme$superpose.line$col <- cols
spectTheme$superpose.line$lwd <- rep(2, 10)
spectTheme$superpose.line$lty <- rep(1, 10)
trellis.par.set(spectTheme)
xyplot(value ~ x, data = spectData2,groups = variable,type = c("l", "g"),panel = function(...) {panel.xyplot(...)panel.text(rep(103.5, nrow(absorpSubset)),absorpSubset[,ncol(absorpSubset)], paste(endpointSubset),cex = .7)},ylab = "Absorption",xlab = "")
\caption[Tecator spectrum plots]{A sample of 10 spectrum of the Tecator data. The colors of the curves reflect the absorption values, where yellow indicates low absorption and red is indicative of high absorption.}
\label{F:RegressionTecatorSpectrum}
\end{center}
\end{figure}
\subsection*{Solutions}
pcaObj <- prcomp(absorp, center = TRUE, scale = TRUE)
pctVar <- pcaObj$sdev^2/sum(pcaObj$sdev^2)*100
head(pctVar)
set.seed(1029)
inMeatTraining <- createDataPartition(endpoints[, 3], p = 3/4, list= FALSE)
absorpTrain <- absorp[ inMeatTraining,]
absorpTest <- absorp[-inMeatTraining,]
proteinTrain <- endpoints[ inMeatTraining, 3]
proteinTest <- endpoints[-inMeatTraining,3]
ctrl <- trainControl(method = "repeatedcv", repeats = 5)
set.seed(529)
mealLm<-train(as.formula(y~x, data=test, method="lm", trControl = trainControl)
set.seed(529)
meatPCR <- train(as.formula(x = absorpTrain, y = proteinTrain,method = "pcr",trControl = ctrl, tuneLength = 25)
set.seed(529)
meatPLS <- train(y,x, method = "pls", trControl = ctrl, preProcess = c("center", "scale"),tuneLength = 25)
comps <- rbind(meatPLS$results, meatPCR$results)
comps$Model <- rep(c("PLS", "PCR"), each = 25)
【问题讨论】:
标签: r