r - 如何让我的程序运行 100 次并将结果保存在数据框中?
问题描述
我有一个程序,可以将第一步中的数据划分为训练集和测试集。之后,构建了一个决策树,我收到了一个混淆矩阵。
我现在要做的是,重复这些步骤(划分训练和测试、决策树和混淆矩阵)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()
,但我不熟悉这个功能,我不知道如何在数据框中保存每个 cylce 的准确性、灵敏度和特异性。
解决方案
最简单的方法是使用 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)
}
推荐阅读
- javascript - 如何打印所有选中的复选框?
- typo3 - TYPO3:将参数从视图传递到控制器 - 无法检测到参数的参数类型
- java - 如何使用半径数据库中的微小半径库获取属性值?
- amazon-web-services - 无法从 AWS 中对 ELB 的 REST 调用获取 IP 地址,而是获得了 DNS 名称
- javascript - 时刻比较
- qt - 为 Qt 构建单个 exe 的教程
- android - HiChart 点击事件第一次起作用,但是当我更新数据时点击事件不起作用
- python-3.x - 如何将 *.tab 文件转换为字典?
- ios - 使用 Codable 协议以与从服务器接收到的相同顺序解码 json
- php - 应用 Composer 的 Drupal 8 补丁修复签名字段上的多个字段