我想对训练数据集中增加的行数(第一个实验使用10%的训练数据,第二个使用20%,依此类推)执行10个线性回归(波士顿数据集)并评估结果测试集并绘制结果,使用X值作为训练集的百分比,并将Y作为测试集上的RSE。我刚开始学习r编码可以有人请指导我这里
sample <- sample.int(n = nrow(Boston), size = floor(.70*nrow(Boston)), replace = F)
train <- Boston[sample, ]
test <- Boston[-sample, ]
#I have the following template
Onetestrse<-rep(0,10)
for(i in 1:10)
Train2=train(1:……….)
Lr1 fit=lm(medv~lstat,…train2)
predictions=…
rss=
rse=
Onetestrse[I]=rse
答案 0 :(得分:2)
这应该让你开始。
始终说明您正在使用哪些非基本R库。 Boston
数据集是MASS
的一部分,因此我们需要执行library(MASS)
。
设置固定种子以获得再现性。
set.seed(2017);
构建培训和测试数据。
sample <- sample.int(n = nrow(Boston), size = floor(.70*nrow(Boston)), replace = F)
train <- Boston[sample, ];
test <- Boston[-sample, ];
为完整训练数据集的不同百分比拟合线性模型。我们随机抽取fraction.of.train
的{{1}}。
train
作为如何处理fraction.of.train <- seq(0.1, 1.0, by = 0.1);
res <- lapply(fraction.of.train, function(x) {
df <- train[sample(nrow(train), floor(x * nrow(train))), ];
fit <- lm(medv ~ lstat, data = df);
return(fit);
})
的示例,我们可以在[{1}}中存储模型系数的估算值。
res
从data.frame
中提取其他合适的统计信息非常简单,我会将此留给您。