我有一个程序,将第一步的数据分为训练和测试集。之后,构建决策树,我收到一个混淆矩阵。
我现在要做的是,重复这些步骤(划分训练和测试,决策树和混淆矩阵)100次,因此我总是得到不同的训练和测试数据集。
我想要的是获得具有混淆矩阵的准确性,灵敏度和特异性的结果数据帧。
准确度,灵敏度和特异度均保存在矢量中:
overall.accuracy <- format(overall['Accuracy'] * 100, nsmall =2, digits = 2)
overall.sensitivity <- format(cm$byClass['Sensitivity']* 100, nsmall =2, digits = 2)
overall.specificity <- format(cm$byClass['Specificity']* 100, nsmall =2, digits = 2)
我想要的输出是这样的:
> result_df
accuracy sensitivity specifity
1 30.22% 95.12% 30.23%
2 34.10% 80.12% 27.76%
3 31.56% 85.78% 28.98%
.
.
.
100 32.33% 87.34% 29.45%
我可以使用replicate()
,但我对该功能不熟悉,我也不知道如何在数据框中保存每个圆柱的准确性,敏感性和特异性。
答案 0 :(得分:2)
最简单的方法是使用for循环,即。
result_df<-matrix(ncol=3,nrow=100)
colnames(result_df)<-c("Acc","Sens","Spec")
for (i in 1:100)
{
YOUR CODE HERE
result_df[i,1] <- format(overall['Accuracy'] * 100, nsmall =2, digits = 2)
result_df[i,2] <- format(cm$byClass['Sensitivity']* 100, nsmall =2, digits = 2)
result_df[i,3] <- format(cm$byClass['Specificity']* 100, nsmall =2, digits = 2)
}