我试图从波士顿数据集预测“medv”(中位所有者拥有的房价)。这是一个数字变量。
我从训练数据集中创建了一个线性模型,并希望通过测试数据集来计算模型精度。以下是可重现的代码:
library("MASS")
Boston<-Boston
set.seed(12396911) # set random seed
index <- sample(1:nrow(Boston), floor(0.8 * nrow(Boston)), replace = FALSE)
training <- Boston[index,]
testing<- Boston[-index,]
fin_model<-lm(medv ~ lstat + rm + ptratio + black + dis + nox + zn + chas + rad + tax + crim, data = training)
prediction<-predict(fin_model,testing)
tab<-data.frame(cbind(prediction,testing$medv))
colnames(tab)<-c("pred","true")
mse<-sum((tab$pred - tab$true)^2)/(length(tab)-1)
mse
我有一个关于如何在预测分类响应时计算准确性的想法(它将真实值与预测值进行比较,因此它是“是”或“否”,匹配的比例是我们的准确度)。
我在想correlation
是否有意义作为准确度的衡量标准:如果1是100%准确,如果它是0,则预测是无用的。但我不确定。
cor(tab$pred,tab$true)
# 0.8522107
在caret
包中可用,postResample(prediction, actual)
,其中预测和实际都是数字或因子向量将为您提供RMSE,Rsquared和MAE