Как я могу позволить моей программе запускаться 100 раз и сохранять результаты в кадре данных? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть программа, которая делит мои данные на первом этапе на обучающие и тестовые наборы. После этого создается дерево решений, и я получаю матрицу путаницы.

Что я хочу сейчас сделать , так это повторить эти шаги (разделить поезд и тест, дерево решений и матрицу путаницы) 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(), но я не знаком с этой функцией и не знаю, как сохранить точность, чувствительность и специфичность каждого цилиндра в кадре данных.

1 Ответ

0 голосов
/ 30 октября 2018

Самый простой способ сделать это - использовать цикл 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)
}
...